Java基础——线程总结

Java基础——线程总结

一、线程是什么?

线程:一个程序里不同的执行路径。

 

二、如何创建线程?

 两种方法创建线程:

第一种

(1)定义具体功能类实现Runnable接口,可以多次调用而实现数据共享

(2)Thread myThread = new Thread()          //参数为Runnable接口类型

(3)Runnable中只有一个方法

      public void run(){……}                           //用以定义线程运行体

第二种

(1)定义一个Thread的子类并重写run()方法

      class MyThread extends Thread {

      public void run(){……}

      }

(2)生成该类的对象

      MyThread myThread = new MyThread (…)

 

三、可以对线程做哪些控制?

方法

功能

bool isAlive(myThread Thread)

判断线程是否还“活”着,即线程是否还未终止。

int getPririty()

获得线程的优先级数值

void setPriority(int NewPriority)

设置线程的优先级数值

Thread.sleep(int sleepTime)

指定当前线程的睡眠时间(单位:毫秒)

void join()

将当前线程与上一主线程合并,即A线程的a()方法调用了B线程,则让B线程结束,再恢复A线程继续执行。

void yield()

让出CPU,当前线程进入就绪队列等待调度。

void wait()

当前线程进入对象的wait pool

void notify()/void notifyAll()

唤醒对象的wait pool中的一个/所有等待线程。

 

四、辨析wait()sleep()

       之所以对这两个方法辨析,它们有个共同点——暂停线程的执行。但要说起它们的不同点,那还是挺多的。

不同点:

1Wait()Object对象的方法;而Sleep(int sleepTime)Thead()线程的方法。

2Wait()执行后,当前对象的锁就会被释放;而Sleep(int)执行后,锁仍然在其手中。

3Wait()不需要指定停留时间,需要notify()方法或notifyAll()方法将其唤醒;而Sleep(int),其中int指定睡眠的毫秒数,只有在超过这个时间后,醒过来,当再次获得时间片之后,才能继续执行。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值