随堂笔记160323线程
来源:互联网 发布:联想数据恢复中心电话 编辑:程序博客网 时间:2024/05/20 08:23
一、多线程:
1.继承Thread:需要在线程中运行的代码写入run方法里.
class MyThread extends Thread{ public void run(){ System.out.println("这是一个线程"); }}public class TestDome{ public static void main(String[] args){ Thread t = new MyThread(); t.start(); //开始运行run里的内容 }}
2.实现Runnable接口:
class MyThread implements Runnable{ public void run(){ System.out.println("This is Thread"); }}public class TestDome{ public static void main(String[] args){ MyThread m = new MyThread(); Thread f = new Thread(m); Thread f1 = new Thread(m); f.start(); f1.start(); }}
1.通过1、2我们可以看出:
- 通过实现Runnable的线程必须通过传给Thread来运行
- 实现Runnable的线程可以实现“数据共享”,因为无论有多少个线程,线程的对象总是m,而Thread不行
- 所以在开发中一般实现Runnable
3.多线程示例:
class Windows implements Runnable { private int ticketNum = 10; public void run() { while (true) { if (ticketNum > 0) { System.out.println("售卖票" + ticketNum--); }else{ break; } } }}public class TestDome{ public static void main(String[] args){ Windows w = new Windows(); Thread t1 = new Thread(w); Thread t2 = new Thread(w); t1.start(); t2.start(); }}
4.线程安全:
1.从3的代码可以看出当程序运行了足够多次数,会发生错误,例如出现售出两张票10,解决这个方法的问题就是说使用同步。
2.synchronized(同步):
1.使用了该标识符的方法或代码块不会被打断,即该代码被锁上了,除拥有该锁的线程外,其他想访问该代码的线程都会被阻塞,直到该锁被释放
class Windows implements Runnable { private int ticketNum = 10; public void run() { while (true) { synchronized(this){ if (ticketNum > 0) { System.out.println("售卖票" + ticketNum--); }else{ break; } } } }}public class TestDome{ public static void main(String[] args){ Windows w = new Windows(); Thread t1 = new Thread(w); Thread t2 = new Thread(w); t1.start(); t2.start(); }}
2.造成线程安全问题的两大原因:1.数据共享 2.多步操作
0 0
- 随堂笔记160323线程
- 黑马程序员---自学随堂笔记----线程
- 线程笔记
- 线程笔记
- 线程,笔记
- 线程笔记
- 线程笔记
- 线程笔记
- 线程笔记
- 线程笔记
- 线程笔记
- 笔记-线程
- 线程笔记
- 线程笔记
- 线程笔记
- 线程独占笔记
- Java线程笔记一:
- Java线程笔记三:
- 一个例子穿插三种不同的工厂模式形态
- react-native--Navigator
- 关于viewPort的研究
- BlurringImage 平滑处理
- /bin,/sbin,/usr/sbin,/usr/bin 目录之简单区别
- 随堂笔记160323线程
- ionic $resource.query 访问,Access-Control-Allow-Origin问题
- some java summary
- 杭电5540 Secrete Master Plan
- [HDU 4855] Goddess (极角排序+三分)
- BZOJ 2731: [HNOI2012]三角形覆盖问题
- hibernate关于c3p0数据库连接池和二级缓存详解
- 选择排序
- c语言排序算法源代码