java多线程编程总结new

java多线程编程总结new

ID:34598538

大小:544.38 KB

页数:85页

时间:2019-03-08

java多线程编程总结new_第1页
java多线程编程总结new_第2页
java多线程编程总结new_第3页
java多线程编程总结new_第4页
java多线程编程总结new_第5页
资源描述:

《java多线程编程总结new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java多线程编程线程:大总结Java线程是Java语言中一个非常重要的部分,Java5之前,多线程的语言支持还是比较弱的,内容也较少,写一个复杂的多线程程序是相当有挑战性的。在Java5以后,Java对多线程做了很多扩展,扩展部分称之为并发包。这部分内容大大增强了Java多线程编程的能力,通过使用Java5线程新特征的API,可以很容易的做出复杂的多线程程序。与其他语言相比,已经是相当强悍了。通过十多篇博文,将Java多线程的方方面面过了一遍,对我来说是一个学习和提高的过程,也为Java线程系列博文能给后来的学习者带来便利。知识点都过了一遍,要总

2、结起来感觉很困难,毕竟Java线程是一个庞大的话题,不知道从何说起,如果泛泛而谈,那总结还有什么意义呢,再次,将前面的博文串联起来,按照先后顺序加上链接,以方便浏览也最好的首尾。下面是Java线程系列博文的一个编目:Java线程:概念与原理Java线程:创建与启动Java线程:线程栈模型与线程的变量Java线程:线程状态的转换Java线程:线程的同步与锁Java线程:线程的交互Java线程:线程的调度-休眠Java线程:线程的调度-优先级Java线程:线程的调度-让步Java线程:线程的调度-合并Java线程:线程的调度-守护线程Java线程:线程

3、的同步-同步方法Java线程:线程的同步-同步块Java线程:并发协作-生产者消费者模型Java线程:并发协作-死锁Java线程:volatile关键字Java线程:新特征-线程池Java线程:新特征-有返回值的线程Java线程:新特征-锁(上)Java线程:新特征-锁(下)Java线程:新特征-信号量Java线程:新特征-阻塞队列Java线程:新特征-阻塞栈Java线程:新特征-条件变量Java线程:新特征-原子量Java线程:新特征-障碍器Java线程:大总结Java线程:概念与原理一、操作系统中线程和进程的概念现在的操作系统是多任务操作系统。

4、多线程是实现多任务的一种方式。进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存。“同时”执行是人的感觉,在线程之间实际上轮换执行。二、Java中的线程在Java中,“线程”指两件不同的事情:1、java.lang.Thread类的一个实例;2、线程的执行。使用java.lang.Thread

5、类或者java.lang.Runnable接口编写代码来定义、实例化和启动新线程。一个Thread类实例只是一个对象,像Java中的任何其他对象一样,具有变量和方法,生死于堆上。Java中,每个线程都有一个调用栈,即使不在程序中创建任何新的线程,线程也在后台运行着。一个Java应用总是从main()方法开始运行,mian()方法运行在一个线程内,它被称为主线程。一旦创建一个新的线程,就产生一个新的调用栈。线程总体分两类:用户线程和守候线程。当所有用户线程执行完毕的时候,JVM自动关闭。但是守候线程却不独立于JVM,守候线程一般是由操作系统或者用户自

6、己创建的。Java线程:创建与启动一、定义线程1、扩展java.lang.Thread类。此类中有个run()方法,应该注意其用法:publicvoidrun()如果该线程是使用独立的Runnable运行对象构造的,则调用该Runnable对象的run方法;否则,该方法不执行任何操作并返回。Thread的子类应该重写该方法。2、实现java.lang.Runnable接口。voidrun()使用实现接口Runnable的对象创建一个线程时,启动该线程将导致在独立执行的线程中调用对象的run方法。方法run的常规协定是,它可能执行任何所需的操作。二、

7、实例化线程1、如果是扩展java.lang.Thread类的线程,则直接new即可。2、如果是实现了java.lang.Runnable接口的类,则用Thread的构造方法:Thread(Runnabletarget)Thread(Runnabletarget,Stringname)Thread(ThreadGroupgroup,Runnabletarget)Thread(ThreadGroupgroup,Runnabletarget,Stringname)Thread(ThreadGroupgroup,Runnabletarget,Stringn

8、ame,longstackSize)三、启动线程在线程的Thread对象上调用start()方法,而不是run()或者别的

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

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

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