多线程---纯小白自己声明给自己的---勿喷
来源:互联网 发布:长虹pf21800h数据 编辑:程序博客网 时间:2024/06/06 03:53
线程与进程
1、线程:程序中单独顺序的控制流
线程本身依靠程序进行运行
线程是程序中的顺序控制流,只能使用分配给程序的资源和环境
2、进程:执行中的程序
一个进程可以包含一个或多个线程
一个进程至少要包含一个线程
3、单线程
程序中只存在一个线程,实际上主方法就是一个主线程
4、多线程
多线程是在一个程序中运行多个任务
多线程的目的是更好的使用CPU资源
线程的实现
1、在Java中,线程的实现有两种:
继承Thread类
实现Runnable接口
2、thread类
thread类是在java.lang包中定义的,继承Thread类必须重写run()方法
定义格式:
class className extends Thread(
run(){};
}
3、Runnable接口
MyRunnable r1 = new MyRunnable("A");
MyRunnable r2 = new MyRunnable("B");
Thread t1 = new Thread(r1);
Thread t2 = new Thread(r2);
t1.start();
t2.start();
注:**重写run方法
start方法执行启动
多线程启动,一定是start方法执行,调用run方法是不能完成多线程并发的。
线程的状态
1、线程也有固定的操作状态
创建状态:准备好一个多线程对象(new一个)
就绪状态:调用start()方法,等待CPU进行调度(等待cpu分配资源调度)
运行状态:执行run()方法
阻塞状态:暂时停止执行,可能将资源交给其他线程使用
终止状态(死亡状态):线程销毁
线程的常用方法
1、取得线程名称
getName()
2、取得当前线程对象
currentThread()
3、判断线程是否启动
isAlive()
4、线程的强行运行
join()
5、线程的休眠
sleep()
线程优先级
1、优先级顺序设置
eg:Thread.setPriority(Thread.MIN_PRIORITY)
1-MIN_PRIORITY
10-MAX_PRIORITY
5-NORM_PRIORITY
如果什么都不设置默认是5
线程同步
1、同步代码块
在代码块上加“synchronized”关键字,则此代码块就称为同步代码块
2、同步代码块格式
synchronized(同步对象) {
需要同步的代码块;
}
eg: private int ticket = 5; // 车票总数
public void run(){
for(int i = 0; i <10; i++){
synchronized(this){
if(ticket > 0){
try{
Thread.sleep(500){
}catch(InterruptedException e){
e.printStackTrace();
}
System.out.println("车票:" + ticket--);
}
}
}
}
实现同步这样最后直到车票没有就不进行继续卖了,解决资源共享问题。
3、同步方法
除了代码块可以同步,方法也是可以同步的
线程的声明周期
阅读全文
1 0
- 多线程---纯小白自己声明给自己的---勿喷
- Intent(意图)---纯小白自己声明给自己的---勿喷
- Java集合---纯小白自己声明给自己的---勿喷
- File---纯小白自己声明给自己的---勿喷
- IO流---纯小白自己声明给自己的---勿喷
- 多线程 自己给自己发消息
- 为了自己的声明
- 自己给自己的纪念
- 给自己的通知
- 给自己的礼物
- 给自己的忠告
- 给自己的忠告
- 给自己的最爱。。。
- 给自己的原则
- 给自己的忠告
- 给自己的情书
- 给自己写的
- 给自己的忠告
- jQuery在前台接收后台json数组并处理
- 算法第四版 练习 1.3.39
- 畅通工程-并查集
- HTML标记和属性<完整版>
- 2017 杭电多校联赛第二场 1011 Regular polygon(多个点求正方形个数)POJ 2002
- 多线程---纯小白自己声明给自己的---勿喷
- java基础习题50道(四)
- python 字符和unicode之间的切换
- 写高质量OC代码52建议总结:48.多用块枚举,少用for循环
- Android开发 之 矢量图动画SVG(细节版)
- linux grep命令详解
- Mr.Smile填坑记——BaseRecyclerViewAdapterHelper使用时条目复用问题(各种状态混乱)
- 从MVC到前后端分离(REST-个人也认为是目前比较流行和比较好的方式)
- CSS常用样式总结