java线程

进程:程序执行的一个实例。
每个进程都会有自己独立的cpu空间。如此提高cpu的运行效率。
线程:所属于进程,每个进程中可以有多个线程。

创建线程的两种方法

1.继承Thread类,重写run()。
2.实现runnable接口,实现接口中唯一的run()。(无start()
线程的启动是调用start()而不是run(),run()中包含所有进程所有代码。
详解:
A.extends Thread
Thread(Runnable target)
分配新的 Thread 对象
1.getName():获取线程名字:run()直接使用(父属性)
2.setName():
3.Thread.getCurrentThread():获取当前线程对象
4.Thread.getCurrentThread().getName():获取当前线程名称
5.setPriority():设置线程优先级
Thread.MAX_PRIORITY Thread.MIN_PRIORITY
Thread.NORM_PRIORITY
最高数值10,最小1,默认5.
注意:具体执行优先级还与代码顺序有关。
6.getPriority():得到线程优先级具体数值
7.sleep(long ms):让线程睡眠ms(毫秒)(转让CPU执行权),时间到了自动苏醒(继续执行代码)
8.Interrupt():中断当前执行线程。如果有sleep线程则会被吵醒,并抛出sleep Interrupted异常。
9.isInterrupt():判断是否收到中断信号
10.Jion():插队,只有jion的线程执行完其它才能执行。
B.implements Runnable
该类没有提供start(),所以启动线程只能借助Thread的start(),实例:
Thread t=new MyThread(Runnable的子类对象);
t.start(); 开启线程
常见用法:new Thread(new Runnable(){
@Override
Public void run(){
….
}
}).start();
特点:实现数据共享。

Thread 、Runnable区别

1.Thread 需要子类继承,Runnable(接口)需要子类实现;
2.Thread 子类访问方法更加灵活(有start()),而Runnable只有run()(启动需要借助Thread子类的start())
3.Runnable子类可以继续继承,而Thread 子类不能再继承(java单继承特性)
4.Runnable可以实现数据共享,同时引发线程安全问题。Thread子类(忽略static)不能数据共享。
(Thread 实现共享的做法是给其属性增加static修饰符,避免在多次new thread对象的时候重复初始化想要共享的属性值。)

线程生命周期

1.创建:new()被调用
2.就绪:start()被调用
3.运行:run()被调用
4.阻塞:sleep()、wait()被调用
5.死亡:run()执行结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值