码迷,mamicode.com
首页 > 编程语言 > 详细

java面试基础问题积累----多线程,并发

时间:2016-02-23 18:37:16      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

1.object提供哪些线程相关方法

object类是所有java类的超类,提供三个与线程密切相关的方法,wait(),notify(),notifyAll()

wait()提供三种重载形式,计时等待和无限等待(线程处于等待状态,直到其他线程调用此对象的notify()或者notifyAll()方法)

notify()唤醒此对象监视器上等待的单个线程

notifyAll()唤醒此对象监视器上等待的所有线程

2.线程死锁

Run1 implements  Runnable{

public void run(){

synchronized(‘‘){

     }

  }

}

获得当前线程名字:Thread.currentthread().getName()

创建线程:Thread th=new Thread(new Run1());th.start();

死锁四个条件:

1.互斥      2.非剥夺    3.请求与保持    4.循环等待  

 

3.哪些接口可以返回有返回值的线程

Callable与Future接口联合使用,Executors包含从普通类转换成Callable类的实用方法

public interface Callable<V>{

V call() throws Exception;

}

public class Transfer implements Callable<Integer>{

public Integer call(){

return i; 

}

}

Transfer tran=new Transfer();

FutureTask ft=new FutureTask<Integer>(tran);

Thread thr=new thread(ft);

thr.start();

 

4.哪些类可用于创建线程池

线程池是一个线程的集合,与连接池功能相同

如果系统中需要创建大量短生命周期的线程,需要用线程池

 1>Executor类提供一些静态方法获取线程池,例如,newCachedThreadPool()--在没有线程时新建一个线程,newFixedThreadPool()--创建固定大小的线程

使用完线程池,使用ExecutorService.shutdown()

 2>ThreadGrop类,类似线程池的线程组类,线程组将每个线程归属到某一个线程组管理的一员

 

5.后台线程(守护线程)

作用:为其他线程服务

如何设置:调用线程的start()方法之前调setDaemon(boolean on)方法

Thread:isDaemon(),setDaemon(boolean on)

Jvm中的系统资源回收机制就是后台线程的典型列子

 

6.线程休眠

Thread的sleep()是个静态方法,可以使当前运行中的线程暂停执行指定的时间

 

7.终止线程

1>stop():不安全的,在线程终止之前没有对其做任何的清除操作,将会释放该线程对象已经锁定的所有监视器

2>suspend():不安全的,有固定的死锁倾向,如果目标线程挂起时在保护关键系统资源的监视器上保持有锁,目标线程重新开始以前任何线程都不能访问该资源,如果重新开始目标线程的线程想在调用resume()方法之前锁定该监视器,就发生死锁

3>利用boolean值来终止正在运行的线程

4>isInterrupted(),Interrupted()安全终止

8.线程的挂起和恢复

挂起:让出CPU的使用权限,暂时停止运行,由于时间不确定,所以挂起需要wait()

恢复:让挂起的线程恢复执行过程,从中断处继续线程的执行。挂起线程的对象执行notifyAll()方法

9.同步和异步的区别

同步:避免死锁,脏数据的发生,对共享资源按顺序来修改(电话,需要等待接收者的返回信息)

异步:可以提高效率,异步处理可以同时做多项工作,但保证必须是可以并发处理的(广播,不关心接受者的状态,不等待接受者的返回信息)

区别:需要等待和不需要等待

10.同步解锁解决共享资源

同步语句块,同步方法,还可以同步解锁

ReentrantLock lock.lock();lock.unlock();

11.什么时候涉及线程程序

通常,多个需求同时进行,或者需要长时间等待的操作。文件,网络,IO设备

 

java面试基础问题积累----多线程,并发

标签:

原文地址:http://www.cnblogs.com/xuexinyan/p/5210724.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!