• 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接口            

          

  • 相关阅读:
    重温 JSP 与 Servlet
    Web/Java Web项目如何模块化?没有正文,别点
    Struts2 In Action笔记_页面到动作的数据流入和流出
    SQL小知识_长期总结
    Java代码工具箱_用Set给List/Vector去重
    Oracle小知识_长期总结
    样式缩写——css技巧(一)
    CSS中强大的EM
    人生苦短,我用python!
    15个超级实用的jQuery插件
  • 原文地址:https://www.cnblogs.com/alex-gc/p/11634226.html
Copyright © 2020-2023  润新知