6-Java网络程序设计的.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6-Java网络程序设计的

Java网络程序设计;第六章 多线程;6 多线程;计算机基本知识补充; 在Java程序中,JVM负责线程的调度。线程调度是值按照特定的机制为多个线程分配CPU的使用权。 调度的模式有两种:分时调度和抢占式调度。分时调度是所有线程轮流获得CPU使用权,并平均分配每个线程占用CPU的时间;抢占式调度是根据线程的优先级别来获取CPU的使用权。JVM的线程调度模式采用了抢占式模式。;所谓的“并发执行”、“同时”其实都不是真正意义上的“同时”。众所周知,CPU都有个时钟频率,表示每秒中能执行cpu指令的次数。在每个时钟周期内,CPU实际上只能去执行一条(也有可能多条)指令。操作系统将进程线程进行管理,轮流(没有固定的顺序)分配每个进程很短的一段是时间(不一定是均分),然后在每个线程内部,程序代码自己处理该进程内部线程的时间分配,多个线程之间相互的切换去执行,这个切换时间也是非常短的。因此多任务、多进程、多线程都是操作系统给人的一种宏观感受,从微观角度看,程序的运行是异步执行的。 ? 用一句话做总结:虽然操作系统是多线程的,但CPU每一时刻只能做一件事,和人的大脑是一样的。;什么是进程;;Java中的线程 ;线程与进程的比较;6.1 在Java中实现多线程;用Thread类创建线程;多线程;创建线程;class MitiSay extends Thread { public MitiSay (String threadName) {super(threadName);} public void run() { System.out.println(getName()+线程运行开始); System.out.println(getName()+线程的优先级+getPriority()); for(int i=0;i10;i++) { System.out.println(i+ +getName()); /*try{ sleep((int)Math.random()*10); } catch(InterruptedException e) { e.printStackTrace(); }*/ } System.out.println(getName()+线程运行结束); } } ;public class TestMitiThread { public static void main(String[] args) { System.out.println(Thread.currentThread().getName()+线程运行开始); new MitiSay(A).start(); new MitiSay(B).start(); new MitiSay(C).start(); System.out.println(Thread.currentThread().getName()+线程运行结束); } };public class MyThread implements Runnable{ int count=1,number; public MyThread(int num) { number=num; System.out.println(创建线程+number); } public void run() { while(true) { System.out.println(线程+number+:计数+count); if(++count==6) return; } } public static void main(String[] args) { for(int i=0;i5;i++) { new Thread(new MyThread(i+1)).start(); } } };6.2 线程的五种状态;线程的状态;线程状态迁移图;6.3 线程的优先级;在java中,每一个线程都有一个优先级。默认情况下,一个线程将继承其父线程的优先级。线程的优先级用数字来表示,范围从1到10,一个线程的缺省优先级是5 Thread.MIN_PRIORITY = 1 Thread.MAX_PRIORITY = 10 Thread.NORM_PRIORITY = 5 调用 Thread 类的方法 getPriority()和 setPriority()来存取线程的优先级。 setPriority()带有一个0~10之间的整数,如果大于10或者小于10,抛出IllegalArgumentException。 int getPrior

文档评论(0)

ayangjiayu5 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档