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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lipy1993 中级黑马   /  2016-3-25 22:03  /  647 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Thread:线程类
Runnable:线程执行目标接口  需要定义子类,重写run方法,创建子类对象

两种创建线程的方式:
        创建线程对象
        开启线程        public void start()
          获取当前线程对象   public static Thread currentThread()  
         获取线程名称   public final String getName()
        线程睡眠(等待)指定毫秒 public static void sleep(long millis)
               
        第一种:直接定义Thread类的子类,重写run方法 即可

        第二种:线程与线程执行目标分离
                public Thread(Runnable target,String name)  通过线程执行目标类对象,创建线程对象
               
        多线程不考虑安全问题,卖票
       
        多线程考虑安全问题
  
          安全问题前提:
                  1共享数据
                  2多个线程抢占CPU
                3操作共享数据

        synchronized:同步关键字
                将一个原子性动作(通常指操作数据的动作),包裹进synchronized代码块中

        synchronized(任意类型的锁对象) {
                被同步的代码
        }

        锁对象:用于标识与哪个synchronized同步的,即多个线程使用同一个锁对象,才能同步,使用不同的锁对象,则同步不了。
        锁对象可以使用任意的类型。
       
                Lock锁: 更为灵活的锁类
    ReentrantLock:Lock的具体实现类
                  void lock()
                  void unlock()
                 
          同步方法:直接在方法上声明同步,其默认锁为本类当前对象
        如果为静态方法,则锁为本类 类名.class

评分

参与人数 3黑马币 +34 收起 理由
RAAM + 20 很给力!
穿礼服的猫 + 4 很给力!
持之一以贯之 + 10 很给力!

查看全部评分

6 个回复

正序浏览
这个也叫笔记。。。。。
回复 使用道具 举报
还有死锁哪????????
回复 使用道具 举报
bo134 发表于 2016-3-25 22:20
666666666666666666666666666

谢谢!6666666666666
回复 使用道具 举报
不错,,,,,,,,,,,,,,,,,
回复 使用道具 举报
没学,先看看
回复 使用道具 举报
666666666666666666666666666
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马