当前位置:网站首页>多线程(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在哪个线程执行,就是谁)等待,直到线程引用执行完毕。
当前线程等待,最多等待给定的毫秒数,或者线程引用对象死亡
边栏推荐
- Use usb_cam to open multiple cameras at the same time
- 概率论相关笔记
- DOM操作-案例:切换背景图片
- Remote file xxx is mapped to the local path xxx and can't be found. You can continue debugging....
- Getting Started with MySQL: The Case Statement Works Well
- DOM操作-事件的绑定与解绑
- 浏览器中的画中画(Picture-in-Picture)API
- 【Latex】TexLive+VScode+SumatraPDF 配置LaTex编辑环境
- ES6-01-ES的简介
- IDEA控制台不能输入信息的解决方法
猜你喜欢

【Rhapsody学习笔记】1:Hello World

ImportError: cannot import name ‘Xxxx‘ from partially initialized module ‘xx.xx.xx‘

Unity转微信小游戏与JS交互

【Rhapsody学习笔记】2:Count Down

nacos1.4.1创建配置报错

DSPE-PEG-Thiol DSPE-PEG-SH phospholipid-polyethylene glycol-thiol liposome for later use

Webrtc从理论到实践一:初识

什么样的人不适合入行编程?你真的适合学习编程吗?

链表理论基础

超详细!!!让你通透数组!!!初学复习不迷路!!
随机推荐
5G的用途和工作原理
Picture-in-Picture API in the browser
911崩了,自养号测评环境IP有哪些更好的选择
一种用QT实现即时通信软件表情发送与接收的思路
Unity导入我的世界模型,简单图解教程(包括调整材质贴图和光照和添加碰撞)
IDEA概述和安装及调试
Rejection sampling note
Unity版本升级问题总结
ES6-字符串
ES6-03-解构赋值
VRchat_udon脚本介绍:傻瓜式教程教你如何实现VRchat地图的功能
企业级 DevOps 究竟是什么?
Websocket协议解析与QT代码示例
ES6-02-let和const关键字
虚拟机查看端口号进程
螺旋矩阵Ⅱ
力扣刷题之排序链表
Remote file xxx is mapped to the local path xxx and can't be found. You can continue debugging....
[已解决]ssh连接报:Bad owner or permissions on C:\\Users/XXX/.ssh/config
C语言数组的深度分析