初识Java线程

Java多线程:

多个线程之间是轮流使用cpu。

使用Thread类及其子类的对象来表示线程

线程需要四种状态:

1.新建:

生命Thread及其子类的对象,分配内存空间和其他资源

2.运行:

多个线程轮流使用CPU资源进行数据处理

3.中断

由于资源被强占,或者执行了sleep及wait方法,处理临时中断

4.死亡:

run结束或者被强制结束,死亡也就等于线程释放了实体

 

优先级:

Java进程默认优先级为1~10 十个等级,在没有指定的情况下, 默认为5;使用setPriority(int grade)来设定。不过Java调度器的任务是是高优先级的县城能够始终执行。

要编写正确,跨平台的多线程代码,必须假设县城在任何时候都有可能被剥夺资源使用权

 

Thread子类创建线程:

定义类继承Thread,重写Thread中的run()方法,规定线程的具体操作。

这样可以在子类中直接增加新的成员变量。但是Thread的子类不可在扩展其他的类

calss 类名 extends Thread(){

void 类名(){

构造方法

}

public void run(){

……

}

}

 

Runnable接口与目标对象

定义进程类直接使用Thread(Runnable t)来定义。其中括号中的为接口,在调用Run()方法时间,直接使用的是接口中的run()方法(接口回调)

Thread vx = new Thread(xyz);

class xyz Implements Runnable{

public void run(){

……

}

}

 

线程常用方法:

start() 启动线程,使之进入就绪队列

run() 被调度之后的具体作业

sleep() 休眠,放弃已占用资源,如果被打断,jvm抛出异常

(InterruptedException)使用try~catch调用sleep

isAlive() 在线程的run执行开始到死亡结束,使用该方法返回真

currentThread() 方法返回正在使用CPU资源的线程

interrupt() 唤醒,相对于sleep方法。导致线程发生异常

 

线程同步:

对于若干个线程调用一个方法时间,必须遵循同步机制:一个线程在使用该方法时间,其他线程先试用该方法就必须等待.

使用synchronized()来修饰方法

在线程运行中可能出现,该线程没有执行完,就被强行终止.不过可以使用同步避免该情况出现

wait(),notifyAll(),notify()都是final修饰的方法,不可被继承或者重写

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值