java 线程若干问题

Java中线程主要直接继承有Thread类或者继承Runnnable接口。

一、线程和进程之间的区别,简单来说线程是进程一部分,一个进程包含一个或者多个线程,线程之间共享内存,进程之间独立内存。

二:Java线程创建方法:

TreadClass extends Thread{

public void run()

{   //执行线程内容

}

}

或者

TreadClass implements Runnable()

{public  void  run()

{//线程执行内容}

}

三、Java线程同步问题,当多个线程共同调用同一个方法或者类时,会发生意外修改变量,有时这不是我们期望的结果,我们可以给该方法或者类上锁,一个方法或者类只有唯一的锁,多个线程执行时获得该对象锁的线程获得执行条件。同步方法syncharonized。

四、Java线程通信问题,Java线程通信可以采用类似生产者,消费者来比喻俩个线程之间的关系,生产者生产物品,消费者消费,生产者生产时,通知消费者此时还在生产没有物品(消费者wait()),生产结束时通知消费者消费(生产者notify()消费者)。

主要涉及方法final void wait () throws interruptedException;//等待

 final void notify();//通知

final void notifyall;//通知所有

五、Java线程死锁问题,当一个线程A中的方法a调用另外一个线程B中的方法b,同时线程B的中方法b调用线程A中的方法a时会发生线程阻塞。也就是说俩个线程循环依赖同一个同步对象时会发生死锁。死锁一般是cpu时钟被俩个线程同时捕获或者更复杂的情况。

六、线程挂起,恢复和停止问题,方法名分别为suspend(),resunme(),stop()三种方法,对线程挂起,恢复和停止,控制线程的执行。sleep()和suspend的区别在于sleep()阻塞线程一段时间自动恢复,而suspend()必须调用resunme()方法才能恢复线程,yield()方法结束当前线程执行,终止当前线程CPU执行时间,下次执行同样参与其他线程CPU时间竞争。

七、线程状态监控问题,采用Thread.getState()方法,方法的返回值有:

BLOCKD线程在等待锁而挂起;

NEW线程未开始;

RUNNABLE当前线程正在执行;

TERMINATED(terminated)线程完成状态;

TIMED_WAITING线程挂起执行一段指定的时间,一般调用sleep()方法或者wait()或者join()方法时会出现;

WATING线程等待,一般调用wait()或者join()方法时出现;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值