keywords: Thread, Runnable, synchronized
现在的CPU很强悍,一般都是多个核心,并使用超线程技术,让一个核心能并行运行多个线程。在处理大数据时,多线程会大大加快数据处理速度,多线程编程也日显重要。Java中每个程序运行时都有一个主线程main在跑。
创建线程的两种方式:继承Thread和实现Runnable
class A extends Thread
Thread implements Runnable
直接调用run()方法不算是多线程,只是运行对象的方法而已。创建多线程需要调用操作系统资源-CPU。在Thread的start()方法中就会调用native的start()来创建新线程(native说明:http://blog.csdn.net/fsz521/article/details/8748562)。
例:多线程控制顺序执行:三个线程顺序输出其id三次
输出:012012012
package multiThread;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
class TestThreadMethod extends Thread {
public TestThreadMethod(String name) {
super(name);
}
public void run() {
System.out.print(this.getName());
}
}
public class TestThread {
public static void main(String[] args) {
TestThreadMethod ttm0 = new TestThreadMethod("0");
TestThreadMethod ttm1 = new TestThreadMethod("1");
TestThreadMethod ttm2 = new TestThreadMethod("2");
ExecutorService exec = Executors.newSingleThreadExecutor();
for (int i = 0; i < 3; i++) {
exec.execute(ttm0);
exec.execute(ttm1);
exec.execute(ttm2);
}
exec.shutdown();
}
}