黑马程序员技术交流社区

标题: 黑马程序员_Thread多线程的学习 [打印本页]

作者: b277967086    时间: 2015-4-19 18:35
标题: 黑马程序员_Thread多线程的学习
1:线程问题:
        单线程:一个应用程序只有一条执行路径
        多线程:一个应用程序有多条执行路径
        
  
    (2)Java程序的运行原理及JVM的启动是多线程的吗?
        A:Java命令去启动JVM,JVM会启动一个进程,该进程会启动一个主线程。
        B:JVM的启动是多线程的,因为它最低有两个线程启动了,主线程和垃圾回收线程。
    (3)多线程的实现

        A:继承Thread类

public class SellTicket extends Thread {

    private static int tickets = 100;

    @Override
    public void run() {
        while (true) {
            if (tickets > 0) {
                System.out.println(getName() + "正在出售第" + (tickets--) + "张票");
            }
        }
    }
}

@通过以上继承Thread类我们就实现了多线程,我们可以通过创建SellTicket对象实现了多线程
        B:实现Runnable接口
    (4)线程的调度和优先级问题
        A:线程的调度
            a:分时调度
            b:抢占式调度 (Java采用的是该调度方式)
        B:获取和设置线程优先级
            a:默认是5

            b:范围是1-10


    (5)线程的生命周期
        A:新建
        B:就绪
        C:运行

        D:阻塞   

        E:死亡


    (6)多线程安全问题的原因
        A:是否有多线程环境
        B:是否有共享数据
        C:是否有多条语句操作共享数据
    (7)同步解决线程安全问题
        A:同步代码块
            synchronized(对象) {
                需要被同步的代码;
            }
            
            这里的锁对象可以是任意对象。
            
        B:同步方法
            把同步加在方法上。
            
            这里的锁对象是this
            
        C:静态同步方法
            把同步加在方法上。
            

            这里的锁对象是当前类的字节码文件对象

          @lock()、unlock()也能实现线程的安全问题。
    (8)回顾以前的线程安全的类
        A:StringBuffer
        B:Vector
        C:Hashtable
作者: b277967086    时间: 2015-4-19 18:37
不错走过




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2