Java 关于线程

阅读本文大概需要 3分钟。

一、线程
实现线程的3种方式:使用内核线程实现、使用用户线程实现和使用用户线程加轻量级进程混合实现。

关于线程启动:start()运行线程。

关于线程终止:Thread.join()方法结束、Thread.isAlive()检测线程是否终止运行。

关于线程中断:可以调用interrupt()方法,Thread.interrupted()检测是否有中断发生。

关于线程等待:Object.wait()、 Thread.join() 、LockSupport.parkNanos()、LockSupport.parkUntil()。

关于线程运行:notify()和 notifyAll() 通知运行

二、创建线程的2种方式:

1.通过实现 Runnable 接口来创建线程
在这里插入图片描述
2.通过继承Thread来创建线程:
在这里插入图片描述
3.通过 Callable 和 Future 创建线程
1)创建 Callable 接口的实现类,并实现 call() 方法,该 call() 方法将作为线程执行体,并且有返回值。
2)创建 Callable 实现类的实例,使用 FutureTask 类来包装 Callable 对象,该 FutureTask 对象封装了该 Callable 对象的 call() 方法的返回值。
3) 使用 FutureTask 对象作为 Thread 对象的 target 创建并启动新线程。
4)调用 FutureTask 对象的 get() 方法来获得子线程执行结束后的返回值。
在这里插入图片描述
三、线程池

1.使用线程池的好处:
1)重复利用线程,降低销毁。
2)提高响应速度。
3)提高线程的可管理性。

2.线程池可以ThreadPoolExecutor ,Executor实现。

四、线程和进程的区别:
1.进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1–n个线程。(进程是资源分配的最小单位)
2.线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。(线程是cpu调度的最小单位)
1)线程和进程一样分为五个阶段:创建、就绪、运行、阻塞、终止。
2)多进程是指操作系统能同时运行多个任务(程序)。
3)多线程是指在同一程序中有多个顺序流在执行。

总结:
在java中,Thread类自身不执行任何操作,它只是驱动赋予它的任务。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值