问题1:什么是进程?进程的特点?
解答:进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。
特点是:进程是系统运行的基本单位;
每一个进程都有自己独立的一块内存空间、一组系统资源;
每一个进程的内部数据和状态都是完全独立的。
问题2:线程概念?多线程?
解答:线程是进程中执行运算的最小单位,可完成一个独立的顺序控制流程。每一个进程中,必须至少建立一个线程(即主线程)来作为这个程序运行的入口。
多线程:一个进程中同时运行了多个线程,用来完成不同的工作,称之为多线程。
问题3:多线程的好处?
解答:1、充分利用CPU的资源;
2、简化编程模型;
3、良好的用户体验。
问题4:Java中支持多线程编程的类?
解答:Java提供了java.lang.Thread类支持多线程编程
问题5:主线程的重要体现?
解答:1、它是产生其他子线程的线程;
2、它必须最后完成执行,因为它执行各种关闭动作。
问题6:如何使用一个线程?如何创建一个线程?
解答:使用:1、定义一个线程,同时指明这个线程所需要执行的代码,即期望完成的功能。
2、创建线程对象;
3、启动线程;
4、终止线程。
创建线程:1、通过继承Thread类创建线程;
2、实现Runnable接口创建线程(推荐)
问题7:线程的状态?
解答:线程一般具有五种状态:即创建、就绪、运行、阻塞、死亡。
问题8:可能使线程暂停执行的条件?
解答:1、线程优先级比较低,无法获取CPU资源;
2、使用sleep()方法使线程休眠;
3、通过调用wait()方法,使线程等待;
4、通过调用yield()方法,使线程让出CPU控制权;
5、线程由于等待一个文件,I/O事件被阻塞。
问题9:什么是线程同步?如何实现?关键字是什么?
解答: 当两个或多个线程需要访问同一资源时,需要以某种顺序来确保该资源某一时刻只能被一个线程使用,这就称为线程同步。
线程同步有两种方式:
一是同步方法;
访问修饰符 synchronized 返回类型 方法名(参数列表){ //方法体…… }
synchronized访问修饰符 返回类型 方法名(参数列表){ //方法体…… }
二是同步代码块。
Synchronized(syncObject){ //需要同步的代码 }
实现同步的关键字是:synchronized ['sɪŋkrənaɪzd]
问题10:线程同步注意事项?
解答:1、当多个并发线程访问同一个对象object的synchronized(this)同步代码块时,同一时刻只能有一个线程得到执行,其他线程必须等待当前线程执行完毕之后才能执行改代码块。
2、当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其他synchronized(this)同步代码块的访问将被阻塞。即该线程获得这个object对象锁,其他线程对该object对象所有同步代码部分的访问都被阻塞。
3、当一个线程访问object的synchronized(this)同步代码块时,其他线程仍可以访问该object的非synchronized(this)同步代码块。
问题11:常见线程安全类型?
解答:HashTable与HashMap;StringBuffer与StringBuilder。