- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java多线程培训
Java语言系列培训多线程编程目录 Java线程的概念如何编写Java多线程代码Java线程间同步其它注意事项Java线程的概念常用的有三种多线程库:POSIX多线程库Win32多线程库Java多线程库前两种与操作系统相关,称为低级库。Java多线程库在低级库的基础上实现,UNIX环境下通常基于POSIX多线程库实现,Windows环境下通常基于Win32多线程库实现。Java线程的概念多进程:操作系统进行调度,使两个或更多个进程同时处于运行状态,又可分为两种方式:抢占式调度非抢占式调度多线程:是多进程的进一步扩展,一个进程可以同时执行多个任务。多任务与多线程的区别进程:重量级的、内核级的实体,包括:独立地址空间、文件描述符、虚拟地址映射等。线程:轻量级的实体,由寄存器、堆栈组成,共享内存空间和文件描述符。多线程的优点并行性:充分利用硬件并行性,加快处理速度吞吐量:系统资源大部时间处于空闲状态。多线程可以充分利用系统处理能力反应能力:阻塞进程的一部分无须阻塞全部进程,保证进程的响应能力通信:线程间通信比进程间通简单、高效系统资源:多线程比多进程更节省系统资源Java多线程的缺点线程调度效率不高。在不同的硬件平台和操作系统上表现不尽相同。线程优先级不可靠。无有效的死锁检测和异常中止手段线程的三个部分 进程是正在执行的程序。一个或更多的线程构成了一个进程。一个线程(或执行上下文)由三个主要部分组成l 一个虚拟CPUl???? CPU执行的代码l代码操作的数据线程的三个部分代码可以由多个线程共享,它不依赖数据。如果两个线程执行同一个类的实例的代码时,则它们可以共享相同的代码。类似地,数据可以由多个线程共享,而不依赖代码。如果两个线程共享对一个公共对象的访问,则它们可以共享相同的数据。在Java编程中,虚拟处理机封装在Thread类的一个实例里。构造线程时,定义其上下文的代码和数据是由传递给它的构造函数的对象指定的。 如何编写Java多线程程序创建Java线程编写线程执行内容启动Java线程Java线程的状态迁移阻塞和激活Java线程结束Java线程运行Java线程对象的其它特性Java线程组守护线程创建Java线程创建线程有两种方法继承java.lang.Thread类及其子类示例:class PrimeThread extends Thread {} 实现java.lang.Runnable接口及其子接口示例: class PrimeRun implements Runnable {}编写线程执行内容java.lang.Runnable接口定义了一个方法: public void run() Java.lang.Thread类实现了java.lang.Runnable 接口。将要在线程中执行的内容放在run()方法中即可。创建Java线程例子 class HelloRunner implements Runnable { int i; public void run( ) { i = 0; while (true) { System.out.println(Hello + i); if (i == 50) break; i++; } } } 创建Java线程例子public class ThreadTest { public static void main(String args[]) { HelloRunner r = new HelloRunner ( ); Thread t = new Thread(r); t.start(); } Java线程的状态迁移线程共有下列四个状态,而且总是处于其中的一个状态,并可在不同状态间迁移。New (新建):当用一个new 操作符创建一个线程时Runnable (可运行):线程对象的start()方法被调用后(并非真的一定在运行)Blocked (阻塞):当线程调用sleep()或wait()方法、等待加锁成功、等待I/O结束、suspend()方法被调用(不推荐)时。Dead (终止):线程正常退出或遇到非预期的异常突然死亡,导致线程进入终止状态。阻塞和恢复Java线程线程在运行过程中,下列操作会使线程进入阻塞状态:调用sleep方法调用wait方法调用join方法等待同步加锁等待I/O操作完成线程进入阻塞状态后,不进行任何操作,应该释放对所有资源的锁定。下面分别讨论几种阻塞情况。线程调用sleep方法Thread类提供了两个静态sleep方法:static void sleep(long millis)static void sleep(long milis, int nanos)示例 try { Thread.sleep(1000); } catch
您可能关注的文档
最近下载
- 用高倍显微镜观察叶绿体和细胞质流动实验.doc VIP
- 总账会计面试题目及答案.doc VIP
- 测绘安全生产事故报告及处置办法.docx VIP
- 最新版精选食品安全管理员完整题库298题(含答案) .pdf
- 造纸用压滤脱水靴套加工设备.pdf VIP
- 【腾讯广告营销洞察】Z世代消费力白皮书.pdf VIP
- 统编版(2024)新教材小学三年级道德与法治上册第二单元《爱科学 学科学》(复习课件).pptx VIP
- 一例基于5A护理模式下的AECOPD患者肺康复改善护理个案(1) PPT课件.pptx VIP
- 湘美版小学六年级美术上册-《田间的精灵》同步课件.pptx VIP
- 广州市居住小区配套设施建设暂行规定.doc VIP
原创力文档


文档评论(0)