多线程概念及常用知识点

问题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。

猜你喜欢

转载自www.cnblogs.com/baichang/p/10208358.html