当前位置:网站首页>多线程(1)
多线程(1)
2022-07-31 05:19:00 【欧粒粒】
1.线程的实现方式:
(1)内核线程:Java 中的线程,是基于内核线程的轻量级实现(简单来说,是轻量级的进程。这样相较于进程,创建,调度,销毁效率要高很多)
(2)用户线程:由程序自己来实现线程, 包括线程的调度等等。
2.进程和线程的关系是什么?
(1)多个进程的内存是隔离开的,一个进程中的多个线程,可以共享内存(进程包含线程)
(2)进程是系统分配资源的最小单位;线程是系统调度cpu执行的最小单位
(3)线程的创建,销毁代价比进程小(状态转换进程的开销大于线程)
(4)线程(有bug)可能会造成整个进程挂掉;进程间是独立运行(可能存在进程通信)
3.多线程的好处:
(1)充分利用cpu资源,提高执行效率
(2) io等阻塞时(如果希望能同时接收输入)
多线程的缺点:
(1) 线程的创建/销毁也是具有一定的系统开销:所以一般用于执行耗时比较长的任务。
(2)增加编码的复杂程度:和se代码执行顺序不-样的地方。
4.线程的状态
5.创建线程的方法:
(1)继承Thread
(2)实现Runnable接口,重写Runnable的run方法
Theard t=new Thread(new Runnable(){
@Override
public void run(){
Sysem.out.println("匿名内部类run");
}
});
t.start();
(3)实现Callable接口
6.Thread中,start() 和run()有什么区别?
(1) start: 启动线程的方式
(2) run: 属于线程任务的描述。线程对象.run,只是属于普通对象的实例方法调用,没有启动线程
7.java进程中,至少要有一个非后台线程(用户线程)存活,进程才不会退出。
8.线程的属性:
设置线程的名称: new Thread(Runnable任务描述对象, String线程名称)
设置后台线程: thread.setDaemon(true)
System. out. println(t. getName());//获取线程名称
System. out . println(t . getState());//获取线程状态
System. out . println(t. isAlive());//是否存活:如果启动后销毁前,都是存活
9.void join()
使用join后,两个线程并发并行随机执行的方式,就变为有一定顺序。
当前线程(t. join在哪个线程执行,就是谁)等待,直到线程引用执行完毕。
当前线程等待,最多等待给定的毫秒数,或者线程引用对象死亡
边栏推荐
猜你喜欢
Getting Started with MySQL: The Case Statement Works Well
Learn how to get a database connection with JDBC
Remote file xxx is mapped to the local path xxx and can‘t be found. You can continue debugging....
【Rhapsody学习笔记】3:Dishwasher
什么样的人不适合入行编程?你真的适合学习编程吗?
概率论相关笔记
nacos1.4.1创建配置报错
ImportError: cannot import name ‘Xxxx‘ from partially initialized module ‘xx.xx.xx‘
Pytorch study notes 7 - processing input of multi-dimensional features
Incredibuild 宣布支持 Yocto
随机推荐
UR3机器人运动学分析之正运动学分析
三本毕业,中途转行软件测试,顶着这些光环从月薪7k干到20k+,感觉还不错
ES6-数组
ROS service transfer pictures
概率论相关笔记
记一次QT 2D 画图 实现3D动态效果
简单计算器,单层循环输出乘法表,字符串方法的使用,格式化输出
When solving background-size:cover, the picture is covered but not displayed completely?
DOM操作-通过关系来获取元素
关于网络安全法的个人理解
ES6-模块
【Rhapsody学习笔记】4:Relations
螺旋矩阵Ⅱ
ES6-Map、Set与Arrary的转换
windows下mysql忘记密码登录,并创建用户
Getting Started with MySQL: The Case Statement Works Well
PyTorch Study Notes 08 - Loading Datasets
About iframe
力扣.找到打字符串中所有字母异位词
DOM操作-事件的绑定与解绑