zoukankan      html  css  js  c++  java
  • 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的操作。

  • 相关阅读:
    PHP:__get()、__set()、__isset()、__unset()、__call()、__callStatic()六个魔术方法
    概念:RPG游戏中两个兵种互相攻击的逻辑
    php怎么获取checkbox复选框的内容?
    20150724之问题
    Uploadify 之使用
    oneThink后台添加插件步骤详解
    针对各种浏览器,前端解决方案(持续更新...)
    解决IE8中select下拉列表文字上下不居中的问题
    针对IE6 7 8当独写样式
    document对象详解
  • 原文地址:https://www.cnblogs.com/meihao1203/p/9181777.html
Copyright © 2011-2022 走看看