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