到目前為止,我們僅用到兩個線程:主線程和一個子線程。然而,你的程序可以創建所需的更多線程。例如,下面的程序創建了三個子線程:
// Create multiple threads.
class NewThread implements Runnable {
? ? String name; // name of thread
? ? Thread t;
? ? NewThread(String threadname) {
? ? ? ? name = threadname;
? ? ? ? t = new Thread(this, name);
? ? ? ? System.out.println("New thread: " + t);
? ? ? ? t.start(); // Start the thread
? ? }
? ? // This is the entry point for thread.
? ? public void run() {
? ? ? ? try {
? ? ? ? ? ? for(int i = 5; i > 0; i--) {
? ? ? ? ? ? ? ?System.out.println(name + ": " + i);
? ? ? ? ? ? ? ?Thread.sleep(1000);
? ? ? ? ? ? }
? ? ? ? } catch (InterruptedException e) {
? ? ? ? ? ? System.out.println(name + "Interrupted");
? ? ? ? }
? ? ? ? System.out.println(name + " exiting.");
? ? }
}
class MultiThreadDemo {
? ? public static void main(String args[]) {
? ? ? ? new NewThread("One"); // start threads?www.xuancayule.com?
? ? ? ? new NewThread("Two");
? ? ? ? new NewThread("Three");
? ? ? ? try {
? ? ? ? ? ? // wait for other threads to end
? ? ? ? ? ? Thread.sleep(10000);
? ? ? ? } catch (InterruptedException e) {
? ? ? ? ? ? System.out.println("Main thread Interrupted");
? ? ? ? }
? ? ? ? System.out.println("Main thread exiting.");
? ? }
}
程序輸出如下所示:
New thread: Thread[One,5,main]
New thread: Thread[Two,5,main]
New thread: Thread[Three,5,main]
One: 5
Two: 5
Three: 5
One: 4
Two: 4
Three: 4
One: 3
Three: 3
Two: 3
One: 2
Three: 2
Two: 2
One: 1
Three: 1
Two: 1
One exiting.
Two exiting.
Three exiting.
Main thread exiting.
如你所見,一旦啟動,所有三個子線程共享CPU。注意main()中對sleep(10000)的調用。這使主線程沉睡十秒確保它最后結束。
轉載于:https://www.cnblogs.com/ok932343846/p/6831879.html