线程基础(一)
ThreadTestOne
package org.wp.thread;public class ThreadTestOne {public static void main(String args[]) {RunnableOne runone = new RunnableOne();Thread thread = new Thread(runone);thread.start();ThreadOne thone = new ThreadOne();thone.start();for (int i = 0; i < 100; i++) {System.out.println("MainThread :" + i);}}}class RunnableOne implements Runnable {@Overridepublic void run() {for (int i = 0; i < 100; i++) {System.out.println("RunnableOne :" + i);}}}class ThreadOne extends Thread {@Overridepublic void run() {for (int i = 0; i < 100; i++) {System.out.println("ThreadOne :" + i);}}}
?InterruptedTest
package org.wp.thread;import java.util.Date;public class InterruptedTest {public static void main(String args[]) {ThreadFirst threadFirst = new ThreadFirst();Thread threadOne = new Thread(threadFirst);threadOne.start();try {// 主线程停止10秒Thread.sleep(10000);} catch (InterruptedException e) {e.printStackTrace();}// 中断线程threadOne.interrupt();ThreadSecond threadSecond = new ThreadSecond();Thread threadTwo = new Thread(threadSecond);threadTwo.start();try {// 主线程停止10秒Thread.sleep(10000);} catch (InterruptedException e) {e.printStackTrace();}threadSecond.flag = false;ThreadThird threadThird = new ThreadThird();Thread threadThree = new Thread(threadThird);threadThree.start();try {// 主线程停止10秒Thread.sleep(10000);} catch (InterruptedException e) {e.printStackTrace();}// catch语句块中的System.out.println("ThreadThird被中断")无法执行threadThree.stop();}}class ThreadFirst implements Runnable {@Overridepublic void run() {System.out.println("ThreadFirst开始执行");while (true) {System.out.println("===" + new Date() + "===");try {Thread.sleep(1000);} catch (InterruptedException e) {System.out.println("ThreadFirst被中断");return;}}}}class ThreadSecond implements Runnable {boolean flag = true;@Overridepublic void run() {System.out.println("ThreadSecond开始执行");while (flag) {System.out.println("===" + new Date() + "===");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}}class ThreadThird implements Runnable {@Overridepublic void run() {System.out.println("ThreadThird开始执行");while (true) {System.out.println("===" + new Date() + "===");try {Thread.sleep(1000);} catch (InterruptedException e) {System.out.println("ThreadThird被中断");e.printStackTrace();}}}}
?JoinTest
package org.wp.thread;public class JoinTest {public static void main(String args[]) {MyThread myThread = new MyThread("MyThread");myThread.start();try {// 等待该线程终止myThread.join();} catch (InterruptedException e) {e.printStackTrace();}for (int i = 0; i < 10; i++) {System.out.println("I am " + Thread.currentThread().getName());}}}class MyThread extends Thread {public MyThread(String str) {super(str);}@Overridepublic void run() {for (int i = 0; i < 10; i++) {System.out.println("I am " + getName());try {Thread.sleep(1000);} catch (InterruptedException e) {return;}}}}
?YieldTest
package org.wp.thread;public class YieldTest {public static void main(String args[]) {MyThreadOne t1 = new MyThreadOne("里奥安德列斯梅西");MyThreadOne t2 = new MyThreadOne("罗伯托巴乔");t1.start();t2.start();}}class MyThreadOne extends Thread {public MyThreadOne(String str) {super(str);}@Overridepublic void run() {for (int i = 0; i < 100; i++) {System.out.println(getName() + i + "下场休息");if (i % 10 == 0) {// 暂停当前正在执行的线程对象,并执行其他线程Thread.yield();}}}}
?PriorityTest
package org.wp.thread;public class PriorityTest {public static void main(String args[]) {Thread t1 = new Thread(new MyRunnableOne());Thread t2 = new Thread(new MyRunnableTwo());t1.setPriority(Thread.NORM_PRIORITY + 3);t1.start();t2.start();}}class MyRunnableOne implements Runnable {@Overridepublic void run() {for (int i = 0; i < 1000; i++) {System.out.println("MyRunnableOne" + i);}}}class MyRunnableTwo implements Runnable {@Overridepublic void run() {for (int i = 0; i < 1000; i++) {System.out.println("MyRunnableTwo" + i);}}}?