标签:time 准备 处理机 exe logs random 利用 进程 blog
每一个exe程序都是一个进程。
子任务或者说线程都可以同时运行,这样一来就可以最大限度地利用CPU的空闲时间来处理其他的任务,比如一边让操作系统处理正在由打印机打印的数据,一边使用Word编辑文档。而CPU在这些任务(线程)之间不停切换,由于切换速度快,给使用者产生了这些线程似乎同时运行的错觉,但实际上并不是。
package bean; public class Test { public static void main(String[] args) { System.out.println(Thread.currentThread().getName()); } }
结果:
1. 继承Thread 类
2. 实现Runnable 接口
package bean; public class Test { public static void main(String[] args) { MyThread myThread = new MyThread(); myThread.start(); System.out.println("运行结束"); } } class MyThread extends Thread { @Override public void run() { super.run(); System.out.println("MyThread"); } }
结果:
Exception in thread "main" MyThread
java.lang.IllegalThreadStateException
package bean; public class Test { public static void main(String[] args) { MyThread myThread = new MyThread(); myThread.start(); try { for (int i = 0; i < 10; i++) { int time = (int) Math.random() * 1000; Thread.sleep(time); System.out.println("main==" + Thread.currentThread().getName()); } } catch (Exception e) { e.printStackTrace(); } } } class MyThread extends Thread { @Override public void run() { try { for (int i = 0; i < 10; i++) { int time = (int) Math.random() * 1000; Thread.sleep(time); System.out.println("run==" + Thread.currentThread().getName()); } } catch (InterruptedException e) { e.printStackTrace(); } } }
结果:
如果在 myThread.start(); 不是调用start()方式而是执行调用myThread.run()方法,那么此线程对象并不交给“线程规划器”来进行处理,而是由main主线程来调用run()
方法,也就是必须等run()方法执行完毕之后才会执行run()方法以后的代码。
P7
标签:time 准备 处理机 exe logs random 利用 进程 blog
原文地址:http://www.cnblogs.com/shyroke/p/6771444.html