java学习笔记整理-线程基础

什么是进程?
正在进行的程序
什么是线程?
进程中。多个独立的执行单位(至少有一个前置/前台线程)并发运行,不是真正的同时进行。cpu执行线程,感官上是同时,但是同一时间,只执行一个线程,所以感觉上是同时(Cpu的切换是随机的)
实现多线程Thread:三种方式
1.继承Thread类,重写run方法 new Thread()
好处:类本身就是线程
坏处:只能继承一个线程类,扩展性差、耦合性高
2.实现Runnable接口,实现run方法 newThread(Runnable)
好处:实现Runnable接口,重写run方法
坏处:接口可以有多个,扩展性,耦合度降低
3.使用匿名内部类,继承Thread类,实现Runnable接口
好处:代码简单
坏处:代码复用性差
常用API:
1.优先级:默认5,最高10,最低1
提高了获得CPU时间片的概率(没什么太大的用处
setPriority()、getPriority()
2.守护线程:当所有的前置线程结束,守护线程结束,通常守护线程都是死循环,主程序自带守护程序-GC
3.获得名字ID号
getName()、getId()
4.获得当前正在执行的线程
Thread.currentThread();
5.获得当前线程是不是活跃的
isAlive()
6.获得当前线程是否被打断
isInterrupted()
线程池
1.Executors.newCacheThreadPool():可缓存线程池,先哈看池中有没有以前建立的线程,如果有,就直接使用。如果没有,就建一个新的线程加入池中,缓存型池子通常用于执行一些生存期很短的异步型任务(线程池无限大,如果上一个任务已经完成,会复用执行上一个任务的线程)
2.Executor.newFixedThreadPool(int n):创建一个可重用固定个数的线程池,以共享的无界队列方式来运行这些线程
3.Executors.newScheduledThreadPool(int n):创建一个定长线程池,支持定时及周期性任务执行
4.Executors.newSingleThreadExecutor():创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO,LIFO,优先级)执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值