当前位置: 首页 > news >正文

安居客做网站/免费的短视频app大全下载

安居客做网站,免费的短视频app大全下载,dw制作网页的代码,网站建设销售渠道Java运行时系统实现了一个用于调度线程执行的线程调度器,用于确定某一时刻由哪一个线程在CPU上运行。在java技术中,线程通常是抢占式的而不需要时间片分配进程(分配给每个线程相等的CPU时间的进程)。抢占式调度模型就是许多线程处…

Java运行时系统实现了一个用于调度线程执行的线程调度器,用于确定某一时刻由哪一个线程在CPU上运行。在java技术中,线程通常是抢占式的而不需要时间片分配进程(分配给每个线程相等的CPU时间的进程)。抢占式调度模型就是许多线程处于可以运行状态(等待状态),但实际上只有一个线程在运行。该线程一直运行到它终止进入可运行状态(等待状态),或者另一个具有更高优先级的线程变成可运行状态。在后一种情况下,低优先级的线程被高优先级的线程抢占,高优先级的线程获得运行的机会。

Java线程调度器支持不同优先级线程的抢先方式,但其本身不支持相同优先级线程的时间片轮换。Java运行时系统所在的操作系统(例如:Windows2000)支持时间片的轮换,则线程调度器就支持相同优先级线程的时间片轮换。下面我们写一个例子程序简单的介绍一下:

class MultiThread

{

public static void main(String[] args)

{

MyThread mt=new MyThread();

Threadt = newThread(mt);

t.start();

while(true)

{

System.out.println("main:"+Thread.currentThread().getName());

}

}

}

class MyThreadimplementsRunnable//extends Thread

{

public void run()

{

while(true)

{

System.out.println(Thread.currentThread().getName());

}

}

}

//Thread-0

Thread-0

Thread-0

Thread-0

main:main

main:main

main:main

main:main

循环输出结果,这里两个线程交替执行,但是并不是由于java虚拟机使其切换的,是由于操做系统的时间片原则,使两个线程交替执行。如果我们希望改变线程的优先级,可以调用Thread类的setPriority()方法改变。这个方法需要一个参数,系统提供了几个常量MAX_PRIORITY、MIX_PRIORITY我们在使用这个方法的时候需要传递其中一个参数。我们修改一下上面的代码:

Thread t = new Thread(mt);

t.setPriority(MAX_PRIORITY);//加上这行代码

t.start();

这样程序的执行结果就是一直执行Thread-0,在我们退出的时候才会执行main:main。多说一句,一般情况下我们不去修改线程的优先级,而且线程的优先级的改变不一定在start()方法前,在线程启动后,我们也可以根据需要改变线程的优先级。

下面我们来说一下实现runnable接口的优势,第一个优势我上篇文章已经说了就不多说了,大家可以去http://blog.csdn.net/mengxiangyue/article/details/6865741看看。第二个优势就是,如果我们的多个线程需要同时访问相同的数据,如果我们继承Thread类的话,就需要这个类创建的线程间的数据进行通信,但是如果我们实现runnable接口的话,就不用那么做(这里有点不对,并不是所有的实现runnable接口都不用通信)。下面我们用一个程序说明一下:

class MultiThread

{

public static void main(String[] args)

{

MyThread mt=new MyThread();

new Thread(mt).start();

new Thread(mt).start();

new Thread(mt).start();

new Thread(mt).start();

for(int i = 0;i<100;i++)

{

System.out.println("main:"+Thread.currentThread().getName());

}

}

}

class MyThreadimplementsRunnable//extends Thread

{

int index=0;

public void run()

{

for(int i = 0;i<100;i++)

{

System.out.println(Thread.currentThread().getName()+":"+index++);

}

}

}

//Thread-0:0

Thread-3:3

main:main

Thread-2:2

Thread-1:1

Thread-2:6

main:main

Thread-3:5

Thread-0:4

Thread-3:9

main:main……

结果是这四个线程输出了从0到399,虽然顺序不是按照1、2、3……这样,但是也没有问题,这个原因是因为线程执行时候操做系统时间片调度原则产生的。如果你在你的PC上运行这段代码,得到的结果也会不同。

写这个的时候明显感到有的地方写的不妥,希望大家指出。

http://www.lbrq.cn/news/2341459.html

相关文章:

  • 动态网站后台怎么做/创建站点的步骤
  • eclipse sdk做网站/磁力搜索器下载
  • h5响应式网站模板下载/怎么弄属于自己的网站
  • 专业的赣州网站建设/百度投放广告平台
  • 大连高端模板建站/优就业seo怎么样
  • 建网站手机版/百度云建站
  • 怎么才服务器上做网站/必应搜索引擎国际版
  • 南通网站建设价格/一个万能的营销方案
  • 展台设计公司/营销型网站优化
  • 新手销售如何快速入手/微信seo排名优化软件
  • 单位网站建设费合同印花税/代写文章价格表
  • 太仓网站建设公司/seo技术分享博客
  • 做网赌需要在哪些网站投广告/网站设计框架
  • 网站实际制作步骤/网店交易平台
  • 网站文字不能复制怎么做/福建键seo排名
  • 上海远丰电商网站建设公司怎么样/微信裂变营销软件
  • 网站建设流程有几个阶段/磁力库
  • 网站开发 网站设计/公司的seo是什么意思
  • 浙江网站制作公司/网站优化外包找谁
  • 专业做网站 郑州/seo基础篇
  • 怎样做网站呢 优帮云/关键词优化报价推荐
  • 郑州动力无限网站建设/seo关键词排行优化教程
  • 北京做网站制作的公司哪家好/seo搜索优化是什么意思
  • 电子商务网站设计思路/广州seo托管
  • 移动手机网站开发/国内优秀网站案例
  • 自己的服务器做网站/浏览器下载安装
  • 买完服务器怎么做网站/深圳seo优化seo优化
  • 合肥快速做网站/网站制作公司哪家好
  • 三线建设学兵连网站西安地区联系人/网站建设需要多少钱
  • 辽宁智能网站建设制作/百度推广每年600元什么费用
  • 数据怎么分层?从ODS、DW、ADS三大层一一拆解!
  • 2025开放原子开源生态大会 | 开源欧拉的AI原生实践与全球协作
  • OFDM系统中关于信号同步的STO估计与CFO估计的MATLAB仿真
  • 浏览器自动化领域的MCP
  • iOS APP 上架流程:跨平台上架方案的协作实践记录
  • 一键获取android公钥/ios公钥工具