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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 伊乐杰 中级黑马   /  2016-4-8 20:21  /  252 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.谈谈你对线程和进程的理解?
        (1)进程是正在执行的程序
        (2)线程进程中用于控制程序执行的控制单元(执行路径)
        (3)进程中至少有一个线程,对于JVM,启动时至少有两个线程:JVM的主线程和JVM的垃圾回收线程
2.多线程(多线程并行和并发的区别)
        (1)并行就是两个任务同时运行,就是甲任务进行的同时,乙任务也在进行。(需要多核CPU)
        (2)并发是指两个任务都请求运行,而处理器只能按受一个任务,就把这两个任务安排轮流进行,由于时间间隔较短,使人感觉两个任务都在运行。
        (3)比如我跟两个网友聊天,左手操作一个电脑跟甲聊,同时右手用另一台电脑跟乙聊天,这就叫并行。
        (4)如果用一台电脑我先给甲发个消息,然后立刻再给乙发消息,然后再跟甲聊,再跟乙聊。这就叫并发。
3.多线程(两种方式的区别以及两种实现方式的过程)(掌握)
        (1)查看源码的区别:
                * a.继承Thread : 由于子类重写了Thread类的run(), 当调用start()时, 直接找子类的run()方法
                * b.实现Runnable : 构造函数中传入了Runnable的引用, 成员变量记住了它, start()调用run()方法时内部判断成员变量Runnable的引用是否为空,
                不为空编译时看的是Runnable的run(),运行时执行的是子类的run()方法
               
        (2)继承Thread
                * 好处是:可以直接使用Thread类中的方法,代码简单
                * 弊端是:如果已经有了父类,就不能用这种方法
        (3)实现Runnable接口
                * 好处是:即使自己定义的线程类有了父类也没关系,因为有了父类也可以实现接口,而且接口是可以多实现的
                * 弊端是:不能直接使用Thread中的方法需要先获取到线程对象后,才能得到Thread的方法,代码复杂
       

0 个回复

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