Java使用Thread和Runnable的线程实现方法比较

网友投稿 312 2022-12-25


Java使用Thread和Runnable的线程实现方法比较

本文实例讲述了java使用Thread和Runnable的线程实现方法。分享给大家供大家参考,具体如下:

一 使用Thread实现多线程模拟铁路售票系统

1 代码

public class ThreadDemo

{

public static void main( String[] args )

{

TestThread newTh = new TestThread( );

// 一个线程对象只能启动一次

newTh.start( );

newTh.start( );

newTh.start( );

newTh.start( );

}

}

class TestThread extends Thread

{

private int tickets = 5;

public void run( )

{

while( tickets > 0 )

{

System.out.println( Thread.currentThread().getName( ) + " 出售票 " + tickets );

tickets -= 1;

}

}

}

2 运行

Thread-0 出售票 5

Thread-0 出售票 4

Thread-0 出售票 3

Thread-0 出售票 2

Thread-0 出售票 1

Exception in thread "main" java.lang.IllegalThreadStateException

    at java.lang.Thread.start(Thread.java:708)

    at ThreadDemo.mainhttp://(ThreadDemo.java:16)

3 说明

一个线程只能启动一次

二 main方法中产生4个线程

1 代码

public class ThreadDemo

{

public static void main(String[]args)

{

// 启动了四个线程,分别执行各自的操作

new TestThread( ).start( );

new TestThread( ).start( );

new TestThread( ).start( );

new TestThread( ).start( );

}

}

class TestThread extends Thread

{

private int tickets = 5;

public void run( )

{

while (tickets > 0)

{

System.out.println(Thread.currentThread().getName() + " 出售票 " + tickets);

tickets -= 1;

}

}

}

2 运行

Thread-0 出售票 5

Thread-0 出售票 4

Thread-0 出售票 3

Thread-0 出售票 2

Thread-0 出售票 1

Thread-1 出售票 5

Thread-1 出售票 4

Thread-1 出售票 3

Thread-1 出售票 2

Thread-1 出售票 1

Thread-2 出售票 5

Thread-2 出售票 4

Thread-2 出售票 3

Thread-2 出售票 2

Thread-2 出售票 1

Thread-3 出售票 5

Thread-3 出售票 4

Thread-3 出售票 3

Thread-3 出售票 2

Thread-3 出售票 1

三 使用Runnable接口实现多线程,并实现资源共享

1 代码

public class RunnableDemo

{

public static void main( String[] args )

{

TestThread newTh = new TestThread( );

// 启动了四个线程,并实现了资源共享的目的

new Thread( newTh ).start( );

new Thread( newTh ).start( );

new Thread( newTh ).start( );

new Thread( newTh ).start( );

}

}

class TestThread implements Runnable

{

private int tickets = 5;

public void run( )

{

while( tickets > 0 )

{

System.out.println( Thread.currentThread().getName() + " 出售票 " + tickets );

tickets -= 1;

}

}

}

2 运行

Thread-0 出售票 5

Thttp://hread-0 出售票 4

Thread-0 出售票 3

Thread-0 出售票 2

Thread-0 出售票 1

更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:jmeter设置全局变量与正则表达式提取器过程图解
下一篇:springboot 整合 freemarker代码实例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~