Java学习之路_0003多线程(1)
来源:互联网 发布:javaudp网络编程 编辑:程序博客网 时间:2024/06/05 03:59
果然,学的太少,写博客也没什么动力,总希望能做些“大事”,羽翼却还未长成,来复习下多线程吧。
内部类被定义在局部时,不可以被成员修饰符修饰, 不能访问它所在的局部中的非final修饰的局部变量7.定义匿名内部类的前提:内部类必须是一个类或者实现接口new AbsDemo(){ void show(){ System.out.println(" "); }.show();8.异常,严重的java通过Error类进行描述,不严重的,通过Exception类进行描述9.声明几个异常,就对应有几个catch块,如果多个catch块中的异常出现继承关系, 父类异常catch块放在最下面10.RuntimeException和它的子类是Exception中的一个特殊的异常,如果在函数内抛出该异常, 函数上可以不用声明,调用者也不用进行处理,编译一样通过。11.throws后面跟的是异常类,可以有多个;throw后面跟的是异常对象, catch语句内的throw抛出后,函数就结束了,相当于return12.如果父类的函数抛出一个异常A,那么子类中覆盖父类该函数的函数只能抛出异常A或A的子类;如果子类方法会产生其他异常,则只能在内部处理,不能抛出。如果父类方法抛出多个异常,那么子类在覆盖该方法时只能抛出父类异常的子集;如果父类或接口的 方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常。13.只有一种情况不会执行:当前面执行到System.exit(0)的时候14.实现Runnable接口或者继承Thread类15.static Thread currentThread()16.(1)多线程(2)同一个锁17.判断锁耗费资源18.静态是所属类,非静态是this
练习4
package com.itheima.day03;import java.util.concurrent.locks.*;/***练习4:请写出一个死锁程序*该类用于描述一个死锁,这里用生产和销售线程作演示*/public class Deadlock implements Runnable{private boolean flag;//进程选择标志,值为true执行生产方法,值为false执行消费方法private static int task=0;private static int products=10;private static Lock lockA=new ReentrantLock();private static Lock lockB=new ReentrantLock();public Deadlock(boolean flag){this.flag=flag;}/***生产方法,生产一个消费一个.*/public void produce(){lockA.lock();//A锁if(this.task==10)return;this.task++;this.products++;System.out.println(Thread.currentThread().getName()+":Waiting for consuming.");this.consume();//B锁lockA.unlock();}/***消费方法,消费一个,生产一个.*/public void consume(){lockB.lock();//B锁products--;System.out.println(Thread.currentThread().getName()+":Waiting for producing.");this.produce();//A锁lockB.unlock();}public void run(){if(this.flag)this.produce();elsethis.consume();}}
package com.itheima;import com.itheima.day03.*;/***该类用于演示死锁*@author R*/public class DeadlockDemo{public static void main(String[] args){Thread t1=new Thread(new Deadlock(true));Thread t2=new Thread(new Deadlock(false));t1.start();t2.start();}}
0 0
- Java学习之路_0003多线程(1)
- Asterisk 未来之路3.0_0003
- java学习之路 之 多线程
- java学习之路 之 多线程练习题
- java--------学习之《多线程》
- java学习之---多线程
- java之学习多线程
- java多线程(java学习笔记之----多线程)
- java学习之浅谈多线程1
- java之学习多线程(一)
- java之学习多线程(二)
- java之学习多线程(三)
- java之学习多线程(四)
- JAVA学习笔记之(多线程)
- java多线程之路之volatile—Core Java学习
- java多线程之路之同步器—Core Java学习
- java学习--多线程(1)
- java学习之--多线程总结
- Zoie Merge Policy
- leetcode 回溯法 模板
- [转]HTTP/1.1 协议规范 笔记
- Java7与G1
- BZOJ [Usaco2008 Oct]灌水(隐藏题)
- Java学习之路_0003多线程(1)
- http协议压缩
- 线性表——顺序表的实现
- 异常(Outlier)检测算法综述
- CStdioFile实现完美支持UNICODE方案
- MIT differential equation---7,8
- C#中使用委托卖房案例
- @property详解:nonatomic,retain
- 将IP表存入SQL里的程序