java多线程---Thread和Runnable简单实例
来源:互联网 发布:线稿 知乎 编辑:程序博客网 时间:2024/05/16 09:57
1.简单的实例
1.1通过Thread类创建多线程简单实例
package com.example;public class MyThreadTest { public static void main (String [] args){ MyThread myThread = new MyThread(); //创建一个线程对象 myThread.start();//开启线程 while (true) { System.out.println("在main方法里面运行```"); } }}class MyThread extends Thread{ public void run(){ while (true){ //用过死循环打印输出 System.out.println("在Thread中运行`````"); } }}
1.2.通过Runnable接口创建多线程简单实例
package com.example;public class MyRunnableTest { public static void main(String [] args){ MyThread myThread = new MyThread(); //创建myThread的实例对象 Thread thread = new Thread(myThread);//创建线程对象 thread.start();//开启线程,执行线程的run()方法 while(true){ System.out.println("main方法里面运行"); } }}class MyThread implements Runnable{ public void run(){ //线程的代码,调用start()时,线程从此处开始执行 while(true){ System.out.println("MyThread中运行"); } }}
2.Thread和Runnable之间的对比(以卖票为例)
2.1 Thread
package com.example;import sun.security.krb5.internal.Ticket;public class MyThreadTickerSell { public static void main(String [] args){ new TicketWindow().start(); //创建一个线程对象TicketWindow并开启 new TicketWindow().start(); //创建一个线程对象TicketWindow并开启 new TicketWindow().start(); //创建一个线程对象TicketWindow并开启 new TicketWindow().start(); //创建一个线程对象TicketWindow并开启 }}class TicketWindow extends Thread{ private int ticket = 100; public void run() { while (true){ if(ticket>0){ Thread th = Thread.currentThread(); //获取当前线程 String th_name = th.getName();//获取当前的线程的名字 System.out.println(th_name+"正在发售第:"+ticket--+"张票"); } } }}
运行结果:
Thread-0正在发售第:100张票
Thread-0正在发售第:99张票
Thread-0正在发售第:97张票
Thread-1正在发售第:98张票
Thread-0正在发售第:92张票
Thread-0正在发售第:91张票
Thread-0正在发售第:76张票
Thread-3正在发售第:95张票
Thread-1正在发售第:91张票
```
2.2 Runnable
package com.example;public class MyRunnableTest { public static void main (String [] args){ TicketWindow tw = new TicketWindow();//创建TicketWindow实例化对象 new Thread(tw,"窗口1").start();//创建线程对象并且命名窗口1,开启线程 new Thread(tw,"窗口2").start();//创建线程对象并且命名窗口2,开启线程 new Thread(tw,"窗口3").start();//创建线程对象并且命名窗口3,开启线程 new Thread(tw,"窗口4").start();//创建线程对象并且命名窗口4,开启线程 }}class TicketWindow implements Runnable{ private int ticket=100; public void run(){ while (true){ if(ticket>0){ Thread th = Thread.currentThread();//获取当前线程 String th_name = th.getName();//获取当前线程的名字 System.out.println(th_name+"正在发售第:"+ticket--+"张票"); } } }}
输出:
窗口1正在发售第:100张票
窗口1正在发售第:99张票
窗口2正在发售第:98张票
窗口3正在发售第:97张票
窗口4正在发售第:96张票
窗口4正在发售第:95张票
窗口2正在发售第:94张票
窗口1正在发售第:93张票
窗口1正在发售第:92张票
窗口1正在发售第:91张票
窗口1正在发售第:90张票
窗口1正在发售第:89张票
窗口3正在发售第:88张票
窗口1正在发售第:87张票
窗口1正在发售第:86张票
由此我们可以看到他们的执行方式如图:
Thread 是多个线程分别完成自己的任务,
Runnable是多个线程共同完成一个任务。
参考文档:
Java基础入门 传智博客高教产品研发部
本人郑重声明,本博客所著文章、图片版权归权利人持有,本博只做学习交流分享所用,不做任何商业用途。访问者可將本博提供的內容或服务用于个人学习、研究或欣赏,不得用于商业使用。同時,访问者应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人的合法权利;如果用于商业用途,须征得相关权利人的书面授权。若以上文章、图片的原作者不愿意在此展示內容,请及时通知在下,將及时予以刪除。
阅读全文
0 0
- java多线程---Thread和Runnable简单实例
- JAVA 几种多线程的简单实例 Thread Runnable
- java多线程 Thread 和Runnable
- java多线程 Thread 和Runnable
- java多线程Thread和Runnable
- Java多线程--Runnable和Thread
- Java -- Thread 和 Runnable 多线程
- java多线程runnable 和Thread到购票实例
- 简单入门java多线程<一>:源码分析Thread和Runnable
- Runnable和Thread实现多线程区别实例
- JAVA多线程:Thread、Runnable
- java 多线程 Thread和Runnable的区别
- java多线程 Runnable和Thread区别
- 关乎Java多线程+Runnable和Thread…
- 关于JAVA多线程Runnable和Thread
- java多线程中Runnable和Thread
- Java多线程Thread和Runnable的区别
- JAVA多线程Thread和Runnable的实现
- 输入描述
- Java
- Oracle 计算两个日期之间的时间差(天/小时/分钟/秒)
- Anaconda入门使用指南
- UVa10048
- java多线程---Thread和Runnable简单实例
- 区块链是什么
- Android Service完全解析,关于服务你所需知道的一切(上)
- 【iOS】10.3以后动态在手机桌面图表管理
- 171102—素数寻找:我爱程序,程序节约生命
- 182. Duplicate Emails(Lettcode)
- python 反向输出字符串
- Linux常用命令
- hadoop伪分布式DataNode无法启动