1.public class MyThread extends Thread {
2. public void run() {
3. System.out.println(currentThread().getName());
4. }
5. public static void main(String[] args) {
6. MyThread t1 = new MyThread();
7. MyThread t2 = new MyThread();
8. try {
9. t1.start();
10. Thread.sleep(10000);
11. t2.start();
12. } catch (Exception e) {
13. }
14.
}
上面程序Main线程执行到第9行,创建t1线程,但是也只是创建,并不放弃Cpu,main到第10行,放弃cup,t1执行,之后main,之后t2
问题,上述流程是否正确?如果把run()改成循环10000000次,那么main执行到第10行,开始执行t1线程的时候,是不是main的等t1循环完1000000次后才能获得CUP
问题补充:sleep休息了10秒,假设run全部循环完要30秒,那么在第10秒--30秒之间,main线程能获得cup的控制权吗?
java的多线程机制是分时还是分工的?
2. public void run() {
3. System.out.println(currentThread().getName());
4. }
5. public static void main(String[] args) {
6. MyThread t1 = new MyThread();
7. MyThread t2 = new MyThread();
8. try {
9. t1.start();
10. Thread.sleep(10000);
11. t2.start();
12. } catch (Exception e) {
13. }
14.
}
上面程序Main线程执行到第9行,创建t1线程,但是也只是创建,并不放弃Cpu,main到第10行,放弃cup,t1执行,之后main,之后t2
问题,上述流程是否正确?如果把run()改成循环10000000次,那么main执行到第10行,开始执行t1线程的时候,是不是main的等t1循环完1000000次后才能获得CUP
问题补充:sleep休息了10秒,假设run全部循环完要30秒,那么在第10秒--30秒之间,main线程能获得cup的控制权吗?
java的多线程机制是分时还是分工的?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货