线程学习(1)
线程学习(1)
williamQAQ 发表于8个月前
线程学习(1)
  • 发表于 8个月前
  • 阅读 8
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云实验室 1小时搭建人工智能应用,让技术更容易入门 免费体验 >>>   

一.线程创建

1

public class MyThread extends Thread {
	@Override
	public void run() {
       
	}
}
public class MyThread2 implements Runnable {

	@Override
	public void run() {

	}

}
public class MyThread3 implements Callable<String> {

	@Override
	public String call() throws Exception {
		// TODO Auto-generated method stub
		return null;
	}

}

二.常用方法

1.start:使线程开始执行,实际上这个方法会调用下面的run这个方法,如果这个线程已经开始执行,则会扔出IllegalThreadStateException

2.sleep当前已经运行的线程休眠一段时间。如果当前线程已经被别的线程中断的话,将会扔出InterruptedException

3.run:线程执行逻辑

4;join: 阻塞调用线程,直到某个线程终止或经过了指定时间为止

5.yield

  • Yield是一个静态的原生(native)方法
  • Yield告诉当前正在执行的线程把运行机会交给线程池中拥有相同优先级的线程。
  • Yield不能保证使得当前正在运行的线程迅速转换到可运行的状态
  • 它仅能使一个线程从运行状态转到可运行状态,而不是等待或阻塞状态

6.wait

wait() 与 notify/notifyAll 方法必须在同步代码块中使用

wait方法释放了锁,使得其他线程可以使用同步控制块或者方法

方法来自Object

7.notify:notify仅唤醒一个线程并允许它去获得锁

8.notifyAll:唤醒所有等待这个对象的线程并允许它们去获得对象锁

9.interrupt

 

标签: 线程
共有 人打赏支持
粉丝 0
博文 34
码字总数 3643
×
williamQAQ
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: