java总结之进程和线程

java总结之进程和线程

ID:8975955

大小:42.43 KB

页数:5页

时间:2018-04-13

java总结之进程和线程_第1页
java总结之进程和线程_第2页
java总结之进程和线程_第3页
java总结之进程和线程_第4页
java总结之进程和线程_第5页
资源描述:

《java总结之进程和线程》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Java总结之进程和线程1.(1)将并发完成的每一件事情称为线程。(2)一个进程是包含自身地址的程序通常将正在运行的程序称为进程,进程内部的任务称为线程,线程是进程的实体,一个进程可以拥有多个线程。一个线程是进程内的一个单一的顺序控制流程,指的是一个进程可以同时运行几个任务,每个任务有一个线程来完成。即多个线程可以同时运行,并且在一个进程内执行不同的任务。2.创建进程在Java中,线程也是一种对象,只有实现Runnable接口的类的对象才能成为线程。(1)继承Thread类Thread类是java.lang包中的一个类,从这个类中实例化的对象代表线程,程序员启动一个新线程需要建立T

2、hread实例。例:publicThread(Stringthreadname)publicThread()_第一个构造方法是创建一个名称为threadname的线程对象publicclassThreadTestextendsThread{//}启动线程publicstaticvoidmain(String[]args){newThreadTest().start();}实现Runnable()接口如果程序员需要继承其他类(非Thread类)并是该程序可以使用线程,就需要使用Runnable接口例:publicThread(Runnabler)publicThread(Runnab

3、ler,Stringst)两种方法的比较(1)实现Runnable接口从面向对象的角度来看,Thread类是一个虚拟处理机严格封装,因此只有当处理机模型修改或扩张时,才应该继承。(2)继承Thread类当一个run()方法体现在继承Thread的类中时,可以用this指向实际控制运行的Thread实例,不在需要“Thread.currenThread().sleep()”。相关应用程序继承Thread类publicclassThreadTestextendsThread{//指定类继承Thread类privateintcount=10;publicvoidrun(){//重写run

4、()方法while(true){System.out.print(count+"");//打印count变量if(--count==0){//使count变量自减,当自减为0时,退出循环return;//退出程序}}}publicstaticvoidmain(String[]args){newThreadTest().start();//启动线程}}Runnable接口publicclassThreadDemoimplementsRunnable{@Overridepublicvoidrun(){for(inti=0;i<10;i++){//定义循环System.out.print

5、ln("TestThread线程在运行");//输出提示信息}}publicstaticvoidmain(String[]args){ThreadDemodemo=newThreadDemo();//创建本类对象newThread(demo).start();//创建线程对象,并启动线程for(inti=0;i<10;i++){//定义循环System.out.println("main线程在运行");//输出提示信息}}}1.线程的状态执行等待休眠死亡阻塞出生就绪Threadt=newThread()t.start()t.notify()或t.notifyAll()时间片结束得到

6、系统资源t.Wait()t.sleep()2.线程的方法线程处于就绪状态调用sleep()方法调用wati()方法等待输入输出完成从就绪状态进入运行状态调用notify()方法调用notifyAll()方法调用interrupt()方法线程的休眠结束输入输出结束调用join()方法使线程挂起调用stop()方法强制停止3.线程的同步(1)线程安全线程安全问题在两个线程同时存取单一对象的数据时发生(1)线程的同步机制1同步块Java中提供了同步机制,使用synchronized关键字,同步块也被称为临界资源,语法如下synchronized(object)object为任意一个对象通

7、常是将共享资源放置在synchronized定义的区域内2同步方法同步方法就是在方法前面添加synchronized关键字的方法例:synchronizedvoidf(){}相关程序同步块publicclassCopyOfThreadSafeTestimplementsRunnable{intnum=10;//定义总票数publicvoidrun(){while(true){synchronized(""){//定义同步块if(num>0){//如果总票数大于0try

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。