1:sleep()线程休眠
public void MyThread extends Thread{
public void run(){
for(int i = 0; i<100;i++){
System.out.println(Thread.currentThread.getName()+i);
try{
sleep(9000);
} catch(InterruptExeption e){
e.printStackTrance();
}
}
}
}
public class SleepTest{
public ststic void mian(String[] args){
MyThread myThread = new MyThread();
myThread.start();
}
}
2:线程优先级设定先测试setPriority()
子线程多线程代码块
public class PriThread1 extends Thread{
public void run(){
for(int i = 0; i<100;i++){
System.out.println(Thread.currentThread.getName()+i);
}
}
}
public class PriThread2 extends Thread{
public void run(){
for(int i = 0; i<100;i++){
System.out.println(Thread.currentThread.getName()+i);
}
}
}
public class PtiThreadTest{
public static void main(String[] args){
PriThread1 priThread1 = new PriThread1();
PriThread2 priThread2 = new PriThread2();
priThread1.setPriority(1);
priThread2.setPriority(10)
priThread1.start();
priThread2.start();
}
}
3:合并线程join()
package com.it.methodusage;
public class JoinThread extends Thread {
@Override
public void run() {
for (int i = 0; i <= 100;i++) {
System.out.println(Thread.currentThread().getName()+i);
}
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
package com.it.methodusage;
public class JoinTest {
public static void main(String[] args) throws InterruptedException {
JoinThread joinThread = new JoinThread();
joinThread.start();
joinThread.join();
for (int i = 0; i < 100; i++) {
System.out.println(Thread.currentThread().getName()+i);
}
}
}
Thread-099
Thread-0100
main0
main1
main2
4:后台线程setDaemon()
package com.it.methodusage;
public class BackStageThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println(Thread.currentThread().getName()+i);
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
package com.it.methodusage;
public class BackStageTest {
public static void main(String[] args) throws InterruptedException {
BackStageThread backStageThread = new BackStageThread();
backStageThread.setDaemon(true);
backStageThread.start();
for (int i = 0; i < 100; i++) {
System.out.println("主线程"+i);
Thread.sleep(1);
}
}
}
Thread-017
主线程96
主线程97
主线程98
主线程99
5:线程让步yiled()
package com.it.methodusage;
public class YieldThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println(Thread.currentThread().getName()+i);
Thread.yield();
}
}
}
package com.it.methodusage;
public class YiledTest {
public static void main(String[] args) {
YieldThread yieldThread = new YieldThread();
YieldThread yieldThread1 = new YieldThread();
yieldThread.start();
yieldThread1.start();
}
}
Thread-00
Thread-10
Thread-01
Thread-11
Thread-12
6:打断测试interrupt()
package com.it.methodusage;
public class IntererruptThread extends Thread{
public void run() {
System.out.println("子线程");
try {
Thread.sleep(30000);
System.out.println("正常苏醒");
} catch (InterruptedException e) {
System.out.println("被大型");
}
System.out.println("子线程结束");
}
}
package com.it.methodusage
import java.io.IOException;
public class InterruptTest {
public static void main(String[] args) throws IOException {
System.out.println("主线程");
IntererruptThread intererruptThread = new IntererruptThread();
intererruptThread.start();
System.out.println("三十秒按任意键结束子程序");
System.in.read();
intererruptThread.interrupt();
System.out.println("主线程结束");
}
}
主线程
三十秒按任意键结束子程序
子线程
主线程结束
被大型
子线程结束
主线程
三十秒按任意键结束子程序
子线程
正常苏醒
子线程结束