1.什么是多线程?为什么程序的多线程功能是必要的?
答:多线程就是同时执行一个以上的线程,一个线程的执行不必等待另一个线程执行完后才执行,所有线程都可以发生在同一时刻。由于每一个进程的内部数据和状态都是完全独立的,所以即使它们是同一个程序所产生,也必须重复许多的数据复制工作,而且在交换彼此数据的时候,也要再使用一些进程间通信的机制,这样就增加了系统负担。
由于同一进程的各个线程之间可以共享相同的内存空间,并利用这些共享内存来完成数据交换、实时通信及必要的同步工作,所以各线程之间的通信速度很快,线程之间进行切换所占用的系统资源也较少,所以引进多线程功能是必要的。
2.多线程与多任务的差异是什么?
答:多任务与多线程是两个完全不同的概念,多任务是针对操作系统而言的,表示操作系统可以同时运行多个应用程序,而多线程是指一个进程而言的,表示在一个过程内部可以同时执行多个线程。
3.在什么情况下必须以类实现Runnable接口来创建线程?
答:如果一个类本身已经继承了某个父类,由于Java语言不允许类的多重继承,所以就无法再继承Thread 类,特别是小程序,这种情况下若要实现多线程的功能可以创建一个类,该类必须来实现Runnable接口。