
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 · 167 阅读 · 0 评论 -
可重入锁的实现原理
可重入锁的原理:判断当前线程是否是持有锁的线程,如果是则无需要wait(),如果不是则等待持有锁的线程释放!/*可重入锁的实现* 加锁其实就是让其他线程等待*/public class testLock{ Lock lock=new Lock(); public void a() throws InterruptedException { lock.lock();...原创 2020-03-17 17:40:48 · 674 阅读 · 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 · 179 阅读 · 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 · 146 阅读 · 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 · 831 阅读 · 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 · 215 阅读 · 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 · 273 阅读 · 0 评论