A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© chengaq0 中级黑马   /  2015-12-16 23:21  /  887 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.什么是多线程?
   答:[size=13.9099998474121px] 一个程序就是一个进程,一个进程包含1个或多个线程,多线程是为了使得多个线程并行或并发的工作以完成多项任务,以提高系统的            效率。
2.并行和并发又有什么区别呢?
[size=13.9099998474121px]    答:[size=13.9099998474121px]并[size=13.9099998474121px]行就是两个任务同时运行,就是甲任务进行的同时,乙任务也在进行。(需要多核CPU)
[size=13.9099998474121px]    并发是指两个任务都请求运行,而处理器只能按受一个任务,就把这两个任务安排轮流进行,由于时间间隔较短,使人感觉两个任务都在运     行。
3.在java中多线程是如何实现的呢?
    答:a.继承Thread
             b.实现Runnable
通过代码的方式来了解这两个线程
继承Thread

实现Runnable

4.Runnable和Thread的区别?
   答:a.查看源码: 继承Thread 由于子类重写了Thread的run方法,当调用start()时,看的是子类的run()方法
                                   实现Runnable 实现类重写了run方法,构造函数中传递了该实现类的引用,该引用给了成员变量target,
                                   线程调用start()方法时,会查看target是否是null,不为null编译的时候看的是左边的类Runnable中
                                   的run方法,运行时看的是右边子类的run方法
            b.两者都有哪些好处和弊端
                                     继承Thread好处:可以直接用Thread类中的方法,代码简单
                                     弊端:如果类有其他父类,就不能继承Thread
                                   实现Runnable好处:因为是接口可以多实现,跟继承无关
                                   弊端:不能直接使用Thread类的方法,需要创建Thread对象,代码复杂
5.如何通过匿名内部类创建线程?

6.什么是线程同步?为什么要同步?
   答:用synchronized修饰的方法或代码块就叫同步方法或同步代码块。
            当多线程并发, 有多段代码同时执行时, 我们希望某一段代码执行的过程中CPU不要切换到其他线程工作. 这时就需要同步.




7.多线程sleep()和wait()的区别?
[size=13.9099998474121px]   答:sleep(毫秒值) 是让当前线程睡多少毫秒后继续运行,如果是线程同步的,并不会释放锁

[size=13.9099998474121px]           wait(可以加毫秒值)意思是让当前线程过多少毫秒后进入等待状态,并释放锁
[size=13.9099998474121px]

8.什么是守护线程?
    答:就是将线程通过setDaemon(true)方法将线程设置为守护线程,其他非守护线程结束的时候,守护线程随之结束。



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马