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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sss18310878521 中级黑马   /  2015-6-19 21:15  /  512 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

进程:正在运行的应用程序
线程:进程中的一条执行路径
多线程:一个应用程序中的多条执行路径

JVM的启动是多线程的吗
        是的, 最少有2个线程
        一个是主线程, 执行java代码的
        另一个是启动垃圾回收器的线程
       
(重点)线程创建的方式:
        方式1: 继承 Thread
                        a: 自定义类 继承 Thread
                        b: 在自定义类中,重写run方法
                        c: 创建自定义类对象
                        d: 启动线程
                       
        方式2: 实现 Runnable
                        a: 自定义类 实现 Runnable
                        b: 自定义类中 重写run方法
                        c: 创建自定义类对象
                        d: 通过Thread来创建线程对象, 把自定义对象作为参数使用
                        e: 启动线程
       
        构造方法:
                public Thread()
                public Thread(String name)
                public Thread(Runnable target)
                public Thread(Runnable target, String name)
               
        方法:
                public final String getName(): 获取线程名字
                public final void setName(String name) : 改变线程名称,使之与参数 name 相同。
                public static Thread currentThread() : 返回对当前正在执行的线程对象的引用
       
                public final int getPriority(): 返回线程的优先级。
                public final void setPriority(int newPriority) 更改线程的优先级
       
                public static void sleep(long millis):在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),
                public final void join():等待该线程终止
                public static void yield():暂停当前正在执行的线程对象,并执行其他线程
                public final void setDaemon(boolean on)将该线程标记为守护线程或用户线程
                public final void stop()强迫线程停止执行
                public void interrupt() : 中断线程。

(重点)线程生命周期图解: 看图

同步机制:  synchronized
        方式1:同步代码块
                        格式:
                                synchronized (对象) {
                                        多个线程所共享的操作数据
                                }
                               
                        锁对象: 多个线程对象,使用同一个锁对象, 锁对象可以是任意对象       
                               
        方式2: 同步方法
                                把同步关键字 加在方法上
                               
                        锁对象: this
       
        方式3: 静态同步方法
                                把同步关键字 加在方法上
                       
                        锁对象: 类名.class
                       
同步的好处:
        解决了线程安全问题
       
同步弊端
        效率低
        如果出现了同步嵌套,就容易产生死锁问题
                       
死锁:
        是指两个或者两个以上的线程在执行的过程中,因争夺资源产生的一种互相等待现象

Lock锁:
        jdk1.5产生的, 把锁封装成了对象
                lock() 获取锁
                unlock() 解锁

案例:
        卖电影票案例



2 个回复

倒序浏览
学习了,多谢分享……
回复 使用道具 举报
   赞!!!我喜欢。  我要保存
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马