• Java——多线程面试问题


    1:什么是多线程?
    一个进程中有多个依次向下的执行路径,   即多个线程


    2:有几种方式可以实现多线程? 谈谈你对这两种实现方式的认识。
    某各类 extends Thread,这个类的实例化对象本身就是一个线程,但是由于单继承的原因,这个方式有局限性
    解决方法就是 让这个类implements Runnable接口,其实例对象作为一个参数可以启动多个线程,并且可以实现数据共享


    3:如何获取和设置线程名称?
    xxx.setName()和xxx.getName()


    4:线程的常见方法?
    sleep(y);
    yield();
    join();
    join(y);
    interrupt();


    5:线程的生命周期图?
    执行完便会被回收。


    6:线程安全问题的产生原因?
    对共享数据进行操作的代码块,并非一个原子操作,可能在执行的过程中被挂起,然后被其他线程使用了没有来得及修改的共享数据。。


    7:如何解决线程安全问题?
    同步操作共享数据的代码块使其成为原子操作


    8.start方法和run方法的区别?
    start方法是开启一个线程,而run方法则是在主线程中调用了一个普通的方法而已。。没有新启动线程


    9.interrupt方法需要如何使用?
    只是将中止标记设置为true,并不能实际中止某线程
    需要配合interrupted方法或者阻塞方法sleep等使用,来中止某线程。线程中断后cpu会挑选其他线程来执行,当没有可挑选的线程的时候,刚才中断的线程又可以接着开始执行;这段代码是最后两个线程都把i加到10


    10.join方法的意义是什么?
    将某线程x强行加入另一个线程y,暂缓线程y的操作。

  • 相关阅读:
    双机调试环境部署
    VC++中通过MultiByteToWideChar将string|char*转换为wstring|wchar_t*
    Unicode环境下的类型转换
    SQL调优日记之发挥SQL性能与你的写法有关--对比三种方式实现相同功能
    从MS SQL删除大数据说开去
    Microsoft SQL Server Reporting Services (SSRS)报表技巧之在图表中增加参考线
    想个法子找出性能差的SQL
    MS SQL,数据库增长时众多表中谁是你关注的目标
    TSQL 日期处理总结
    投入.NET,我的第一篇BLOG
  • 原文地址:https://www.cnblogs.com/meihao1203/p/9181777.html
Copyright © 2020-2023  润新知