Java多线程

Java多线程面试

1) 什么是线程?

线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对 运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。

2) 线程和进程有什么区别?

线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。别把它和栈内存搞混,每个线程都拥有单独的栈内存用来存储本地数据。

3) 如何在Java中实现线程?

在语言层面有两种方式。java.lang.Thread 类的实例就是一个线程但是它需要调用java.lang.Runnable接口来执行,由于线程类本身就是调用的Runnable接口所以你可以继承 java.lang.Thread 类或者直接调用Runnable接口来重写run()方法实现线程。

 4)用Runnable还是Thread?

  Java不支持多继承,但是允许调用多个接口。

5)Thread类中的start()和run()方法他有什么区别?

  start()是用来启动新创建的线程,而且start()内部调用了run()方法,这和直接调用run()方法效果不一样。当你调用run方法的时候,只是会在原来的线程中调用,而没有新的线程启动,start()方法才会启动新线程。

 6)

  1. 引言:

    高可用:数据不能出错

    高性能:体验高

    高并发:同时进行

 

 

 

 

       在程序运行时,即使没有自己创建线程,后台也会存在多个线程。

      main()称之为主线程,系统的入口点,用于执行整个程序;

      在一个线程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器与操作系统紧密相关,先后顺序认为不能直接干预。

      对于一份资源操作时,会存在资源抢夺的问题,需要加入并发控制。

      线程会带来额外的开销,会存在资源抢夺的问题,需要加入并发控制

      每个线程在自己的工作内存交互,加载和存储主内存监控不当会造成数据不一致

 

 

  •  多线程实现

     多实现,少继承

     创建多线程:

    1. 继承Thread类
    2. 实现Runnable接口
    3. 实现Callable接口            

      

 

posted @ 2019-10-08 10:58  夕阳七海  阅读(139)  评论(0编辑  收藏  举报