多线程

1进程

1是程序执行的一条途径

2一个系统级的应用就是一个进程

2线程

1线程在进程的内部,一个进程有多个线程

2多个线程并发执行可以提高效率,同时可以完成多项工作

3节约的是等待时间,如果程序没有等待时间,无需进程

【多线程的目的】

将一份代码复制多份,然后同时执行

3并行与并发

1并行指两任务同时执行(需要多核CPU)

【两个电脑和两个网友同时聊天】

2并发两任务都请求运行,但是服务器只能接受一个,就对两个任务轮流执行,由于时间比较短,让人感觉同时在执行

【一台电脑先和甲发消息然后和乙发消息】

4java虚拟机运行流程

1java命令启动java虚拟机(JVM)等同启动一个应用程序(进程)该进程会自动启动一个“主线程”,然后主线程去调用一个类的main方法

JVM启动后至少会创建垃圾回收和主线程

5java中多线程实现方式

1步骤

继承Thread方式

定义类=继承Thread

重写run方法

把新线程要做的事写入run方法中

创建线程对象

调用start方法开启新线程,内部会自动执行run方法

5java中多线程实现方式二

定义类实现Runnable接口

实现run方法

把新线程要做的事写入run方法中

创建自定义的Runnable的子类对象

创建Thread对象,传入Runnable

调用start()开启新线程内部会自动调用Runnable的run方法

6小方法

休眠(Thread.sleep)

守护(守护线程对象.setDaemon)

加入

jhon()优先实行指定路线

jhon(毫秒) 优先执行指定线程若干毫秒

礼让

让出当前线程的执行权

基本看不到效果

Thread.yield();

设置优先级

线程对象.setPriority(1~10);

7线程安全

1定义

多个线程操作同一数据时,由于线程执行的随机性,可能出现安全问题(多个程序共享资源)

使用同步就可以解决该问题吧操作数据的代码进行同步,同一时间只操作数据就可以保证数据的安全性

解决

1尽量避免操作同一数据

2上锁

8死锁

1定义

使用同步多个线程同时持有对方运行时所需要的·资源

多个线程同步是,多个同步代码块嵌套,很容易就会出现死锁

锁的嵌套越多越容易造成死锁情况

2

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。