笔记心得10

IO总结
InputStream
|==节点流(流开始的地方,流的源头)
|-- FileInputStream
|--ByteArrayInputStream
|==过滤流()
|--BufferedInputStream
|--ObjectInputStream
|--ZipInputStream
|--InputStreamReader
OutputStream
|==节点流(流结束的地方,流的目的)
|-- FileOutputStream
|--ByteArrayOutputStream
|==过滤流()
|--BufferedOutputStream
|--ObjectOutputStream
|--ZipOutputStream
|--OutputStreamWriter
文本的处理(完成byte <------> char 编码转换 )

Reader
|--核心 处理 InputStreamReader byte--解码->char
GBK(byte)-->javaUnicode(char)
|--FileReader=InputStreamReader+FileInputStream
|--BufferedReader 提供了readline()
Writer
|-- OutputStreamWriter char--编码-->byte
javaUnicode(char) --> GBK(byte)
|--FileWriter=OutputStreamWriter+FileoutputStream
|--PrintWriter 提供了 println();
线程
1 new
2 Runnable
3 Running
4 Block
5 Dided
线程状态管理
Thread.yield()让出当前线程让出处理器(离开Running)进入Runnable状态
使当前线程进Runnable
Thread.sleep(times)使当前线程从Running放弃处理器进入Block状态,休眠times毫秒,再返回到Runnable
如果其他线程打断当前线程的Block(sleep),就会发生 InterruptedException

后台线程(守护线程,精灵线程)
t.setDaemon(true);
Java进程的结束:当所有前台线程都结束的时候,java进程结束
后台线程,不管是否结束,都被停掉

线程的优先级
默认有10优先级,优先级高的线程获得执行的机会多,机会的多少不能通过代码干预
默认的优先级是5

两种方式创建线程
1继承Thread类
a继承Thread类,覆盖run()方法,提供并发线程的过程
b创建这个类的实例
c使用start方法启动线程
2实现Runnable接口
a实现Runnable接口,实现run()方法,提供并发线程的过程
b创建这个类的实例,用这实例作为Thread构造器参数创建Thread
c使用start()方法启动线程
class Foo Implenents Runnable{
public void run(){
}
}
Thread t=new Thread(new Foo());
t.start();
3使用内部类创建线程

线程的同步
1多个线程并发读写同一个临界资源时候会发生线程安全问题
2可以使用同步代码块来解决同步读写临界资源,解决并发安全问题。
3 a同步代码块
synchroized(同步监视器){
}
b同步监视器是一个任意对象实例,是一个多线程之间的互斥的锁机制,多个线程要
使用同一个“监视器”实现同步互斥
c常见写法:synchronized(this){
}
d如果方法的全部过程需要同步,可以简单使用synchronized修饰

Java中同步API
1 StringBuffer是同步的 相当于 synchronized append();
StringBuilder不是同步的 相当于 append();
2 Vector 和 Hashtable 是同步的
Arraylist 和 HashMap 是非同步的
3 Collections
.synchronizedList(list<T>list);方法
ArrayList list=new Arraylist();
list synclist=Collections.synchronizedList(list);
这样就得到一个同步的集合list

异步线程之间,需要协作通信
异步写文件操作
方法可能会出现线程安全性问题

1 同步写文件:从控制台读取一行,立即写到文件中
wait是需要锁的
Timer 计时器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值