Java多线程
我是养乐多
这个作者很懒,什么都没留下…
展开
-
Java学习知识点小结5(多线程)
1.创建多线程方式: 继承Thread类,重写run方法(不是必须实现run方法,默认调用其内部的run方法) 继承Runnable接口,重写run方法(必须实现run方法)(多用接口实现,因为java不能多继承) 继承Callable接口,比较少使用 2.Thread类有start()方法可以将线程交给CPU调度 3.一个类的多个线程实例 共享这个类的线程体!!! 4.线程创建运行方式: Cla...原创 2020-03-17 20:39:37 · 144 阅读 · 0 评论 -
可重入锁的实现原理
可重入锁的原理:判断当前线程是否是持有锁的线程,如果是则无需要wait(),如果不是则等待持有锁的线程释放! /*可重入锁的实现 * 加锁其实就是让其他线程等待*/ public class testLock{ Lock lock=new Lock(); public void a() throws InterruptedException { lock.lock(); ...原创 2020-03-17 17:40:48 · 634 阅读 · 0 评论 -
基础练习:两种生产者消费者的例子
一种是管程法: 通过判断缓冲区当前情况,完成wait()和notify()调用 这儿有个小bug,多运行几次会连续生产,以后再回来看看 class TestProduce { public static void main(String[] args) { Shop shop = new Shop();// 定义缓冲区对象; Productor sc = n...原创 2020-03-16 16:22:30 · 147 阅读 · 0 评论 -
基础练习:两种多线程的对比使用例子(静态代理的理解)
第一种:顾客类作为影院类的代理,影院类为顾客类的属性 顾客类内部实现了影院类的方法,并加入了自己的方法。 public class HappyCinema { public static void main(String[] args) { Cinema c=new Cinema(20,"四毛影院"); new Thread(new Customer(c,2...原创 2020-03-15 11:46:30 · 129 阅读 · 0 评论 -
使用synchronized关键字实现线程同步
synchronized方法 声明方法时使用:public synchronized void Method(){方法体} public class testWeb12306 implements Runnable { private int ticketnums=99; boolean flag=true; @Override public void run() { ...原创 2020-03-14 21:06:41 · 772 阅读 · 0 评论 -
对比Runnable接口与Callable接口实现多线程
首先用Runnable实现下载三个线程并发通过URL下载图片 public class DownloadThread implements Runnable{ private String path; private String name; public DownloadThread(String name, String path) { this.pa...原创 2020-03-12 16:45:56 · 191 阅读 · 0 评论 -
基础练习:用多线程模拟抢票以及龟兔赛跑
首先第一个小代码是模拟抢票: public class testWeb12306 implements Runnable {//继承Runnable接口 private int ticketnums=99;//设定票共有99张 @Override public void run() { while(true){//循环抢票 if(tick...原创 2020-03-12 16:26:53 · 236 阅读 · 0 评论