JAVA程序员培训定制课程c13.ppt
《JAVA程序员培训定制课程c13.ppt》由会员分享,可在线阅读,更多相关《JAVA程序员培训定制课程c13.ppt(31页珍藏版)》请在三一办公上搜索。
1、第十三章,线 程,2,本章内容,线程的概念模型线程的创建和启动线程的状态控制临界资源、对象锁和死锁线程的互斥和同步,3,什么是线程,线程是一个程序内部的顺序控制流。线程和进程每个进程都有独立的代码和数据空间(进程上下文),进程切换的开销大。线程:轻量的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换的开销小。多进程:在操作系统中能同时运行多个任务(程序)多线程:在同一应用程序中有多个顺序流同时执行,4,线程的概念模型,虚拟的CPU,由java.lang.Thread类封装和虚拟 CPU所执行的代码,传递给Thread类对象。CPU所处理的数据,传递给Th
2、read类对象。,代 码,数 据,虚拟CPU,Java线程模型,5,线程体,Java的线程是通过java.lang.Thread类来实现的。每个线程都是通过某个特定Thread对象所对应的方法run()来完成其操作的,方法run()称为线程体。,6,创建线程-通过实现Runnable接口,public class TestThread1 public static void main(String args)Runner1 r=new Runner1();Thread t=new Thread(r);t.start();class Runner1 implements Runnable pub
3、lic void run()for(int i=0;i30;i+)System.out.println(No.+i);,7,多线程,Java中引入线程机制的目的在于实现多线程可以使用同一个Runnable接口(的实现类)类型的实例构造多个线程多线程之间可以共享代码和数据 举例Thread t1=new Thread(r);Thread t2=new Thread(r);,8,多线程举例,public class TestThread2 public static void main(String args)Runner2 r=new Runner2();Thread t1=new Thread
4、(r);Thread t2=new Thread(r);t1.start();t2.start();class Runner2 implements Runnable public void run()for(int i=0;i30;i+)System.out.println(No.+i);,9,多线程共享数据和代码,class MyRunner implements Runnable class YourRunner implements Runnable MyRunner m=new MyRunner();YourRunner y1=new YourRunner();YourRunner
5、y2=new YourRunner();Thread t1=new Thread(m);Thread t2=new Thread(y1);Thread t3=new Thread(y2);Thread t4=new Thread(y2);,10,启动线程,使用start()方法启动线程启动线程是使线程进入到可运行(runnable)状态,并不一定立即开始执行该线程 public class TestThread1 public static void main(String args)Runner1 r=new Runner1();Thread t=new Thread(r);t.start(
6、);,11,线程状态转换(Thread Scheduling),12,线程状态转换举例,public class TestThread3public static void main(String args)Runner3 r=new Runner3();Thread t=new Thread(r);t.start();class Runner3 implements Runnable public void run()for(int i=0;i30;i+)if(i%10=0,13,终止线程控制举例,public class TestThread4 public static void mai
7、n(String args)Runner4 r=new Runner4();Thread t=new Thread(r);t.start();for(int i=0;i0)System.out.println(in thread main i=+i);System.out.println(Thread main is over);r.shutDown();class Runner4 implements Runnable private boolean flag=true;public void run()int i=0;while(flag=true)System.out.print(+i+
8、);public void shutDown()flag=false;,14,线程控制基本方法,15,join方法用法举例,public class TestThread5 public static void main(String args)Runner5 r=new Runner5();Thread t=new Thread(r);t.start();try t.join();catch(InterruptedException e)for(int i=0;i50;i+)System.out.println(主线程:+i);class Runner5 implements Runnabl
9、e public void run()for(int i=0;i50;i+)System.out.println(SubThread:+i);,16,创建线程的第二种方式-继承Thread类,public class TestThread6 public static void main(String args)Thread t=new Runner6();t.start();class Runner6 extends Thread public void run()for(int i=0;i50;i+)System.out.println(SubThread:+i);,17,两种创建线程方法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 程序员 培训 定制 课程 c13
链接地址:https://www.31ppt.com/p-5373895.html