黑马程序员技术交流社区
标题:
视频学到了多线程那了,然后就迷糊了
[打印本页]
作者:
分解式
时间:
2014-2-12 13:11
标题:
视频学到了多线程那了,然后就迷糊了
多线程,关于这些线程运行程序抢资源上是怎么个分配资源的,怎么不明白呢
作者:
wq10zj
时间:
2014-2-12 14:07
系统保证多线程是交替执行的,至于哪个线程先执行哪个线程后执行,则无法获得保证,我们称为随机
但是 它所说的随机是不能与产生随机数的随机相看待 我们知道电脑上是无法真正产生随机数
但是多线程它就是这样的机制
作者:
廉伟杰
时间:
2014-2-12 14:10
他是随机的,抢占cpu的利用,只是因为相隔时间太短而感觉同时进行似得
作者:
奋斗的小胖子
时间:
2014-2-12 14:19
电脑随机切换的吧。这些切换非常快的,跟电影一样,看电影的时候感觉很流程,一气呵成,其实都是各个画面剪辑而成的。
作者:
何苦似梦离
时间:
2014-2-12 15:06
其实有时候之是脑袋乱了,你理解了,但是你的脑袋认为你不理解,这个问题很简单,或许你需要休息一会了,让你的大脑清醒
作者:
kira
时间:
2014-2-12 17:01
这个过程非常简单 因为java中一般线程默认的优先级都是5
cpu在切换线程的过程中随机的坐着切换 但是我们可以设置优先级来改变这一特性
如下代码
public class ThreadDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Thread aa = new Thread(new A());
Thread bb = new Thread(new B());
aa.start();
bb.setPriority(10);//设置B线程的优先级
bb.start();
}
}
class A implements Runnable {
@Override
public void run() {
for(int x=0;x<200;x++){
System.out.println(Thread.currentThread().getName()+"run");
}
}
}
class B implements Runnable {
@Override
public void run() {
for(int x=0;x<200;x++){
System.out.println(Thread.currentThread().getName()+"run");
}
}
}
复制代码
这里的优先级传的是从0-10 10 最大 0最小 cpu执行到的频率也最低
我们设置b的为最大的时候 我们发现cpu就会优先选择执行完b的在执行A的 如果吧a设置到最小也一样
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2