JAVA多线程(二)

Thread常用方法实验


Thread常用方法:

(1)Thread.currentThread().getName()  得到当前线程名

(2)public final void setName(String name) 设置线程名字

(3)public static void sleep(long millis)throws InterruptedException 线程休眠,毫秒

(4)public static void yield()  放弃本次机会

(5)public final void join(long millis)throws InterruptedException 等待线程终止

(1)Thread.currentThread().getName() 得到当前线程名

public static void main(String[] args) {
	System.out.println(Thread.currentThread().getName());
}

结果:main
这是一个主线程

public class MyThread extends Thread {
	public static void main(String[] args) {
		MyThread t1 = new MyThread();
		t1.start();
	}
	@Override
	public void run() {
		for (int i = 0; i < 5; i++) {
			System.out.println(Thread.currentThread().getName() + "——" +i);
		}
	}
}

结果:
	Thread-0——0
	Thread-0——1
	Thread-0——2
	Thread-0——3
	Thread-0——4
	
	Thread-0这是默认的线程名

(2)public final void setName(String name) 设置线程名字

也可以通过Thread类的构造方法设置名字

public Thread(String name)
public class MyThread extends Thread {
	public static void main(String[] args) {
		MyThread t1 = new MyThread();
		t1.setName("线程一");
		t1.start();
	}
	@Override
	public void run() {
		for (int i = 0; i < 5; i++) {
			System.out.println(Thread.currentThread().getName() + "——" +i);
		}
	}
}

结果:
线程一——0
线程一——1
线程一——2
线程一——3
线程一——4

这里就是我们所设置的线程名字

(3)public static void sleep(long millis)throws InterruptedException 线程休眠,毫秒

休眠就好像是睡觉
休眠1秒就是线程要1秒后再继续执行

public class MyThread extends Thread {
	public static void main(String[] args) {
		MyThread t1 = new MyThread();
		t1.setName("线程一");
		t1.start();
	}
	@Override
	public void run() {
		for (int i = 0; i < 5; i++) {
			try {
			//每循环一次,线程休眠1秒再执行
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			System.out.println(Thread.currentThread().getName() + "——" +i);
		}
	}
}

(4)public static void yield() 放弃本次机会(注意:它虽然放弃了本次机会,但下一次机会还有可能是它)
观察以下代码结果(多执行几次)

public class ThreadYield extends Thread {
	@Override
	public void run() {
		for (int i = 0; i < 50; i++) {
			System.out.println("yield----"+i);
		}
	}
}

public class Test {
	public static void main(String[] args) {
		ThreadYield t = new ThreadYield();
		t.start();
		for (int i = 0; i < 50; i++) {
			if (i == 3) {
				Thread.yield();
			}
			System.out.println("main----"+i);
		}
	}
}

(5)public final void join(long millis)throws InterruptedException 等待线程终止(自己优先执行,不是一定优先执行,只是机会大一些)

public class ThreadJion extends Thread {
	@Override
	public void run() {
		for (int i = 0; i < 50; i++) {
			System.out.println("join-----"+i);
		}
	}
}

public class Test {
	public static void main(String[] args) {
		
		ThreadJion t = new ThreadJion();
		t.start();
		
		for (int i = 0; i < 50; i++) {
			if (i == 3) {
				try {
					t.join();
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
			System.out.println("main-----"+i);
		}
	}
}	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值