Java基础的IO和线程知识
来源:互联网 发布:大数据分析系统翻译 编辑:程序博客网 时间:2024/04/30 10:58
1.流的分类
按照数据流向的不同:输入流 输出流
按照处理数据的单位的不同:字节流 字符流(处理文本文件)
按照角色的不同:节点流(直接作用于文件的) 处理流
2.IO的体系
抽象基类 节点流(文件流) 缓冲流(处理流一种)
InputStream FileInputStream BufferedInputStream
OutputStream FileOutputStream BufferedOutputStream (flush())
Reader FileReader BufferedReader (readLine())读一行
Writer FileWriter BufferedWriter (flush())
转换流:InputStreamReader OutPutStreamWriter
编码:字符串 ———> 字节数组 OutPutStreamWriter
解码:字节数组 ————> 字符串 InputStreamReader
Thread的常用方法:
1.start():启动线程并执行相应的run()方法
2.run():子线程要执行的代码放入run()方法中
3.currentThread():静态的,调去当前的线程
4.getName():获取线程的名字
5.setName():设置此线程的名字
6.yield():调用此方法的线程释放当前cup的执行权
7.join():在A线程中调用B线程的join方法,表示当执行到此方法A线程停止执行,直至B线程执行完毕,A线程再接着join()之后的代码执行
8.isAlive():判断当前线程是否还存活
9.sleep(long l):显式的让当前线程睡眠1毫秒
10.线程通信:wait() notify() notifyAll()
11.设置线程的优先级
getPriority():返回线程优先级
setPriority(int newPriority):改变线先程优级
1.线程安全问题存在原因?
由于一个线程再操作共享数据过程中,未执行完毕的情况下,另外的线程参与进来,导致共享数据存在了安全问题
2.如何解决线程安全问题?
必须让一个线程操作共享数据完毕以后,其它线程才有机会参与共享数据的操作
3.java如何实现线程的安全:线程的同步机制
方式一:同步代码块
synchronized(同步监视器){
//需要被同步的代码块(即为操作共享数据的代码)
}
1.共享数据:多个线程共同操作的同一个数据(变量)
2.同步监视器:由任何一个类的对象来充当。哪个线程获取此监视器,谁就执行大括号里被同步的代码。俗称:锁
要求:所有的线程必须共用同一把锁!
注:在实现的方式中,考虑同步的话,可以使用this来充当锁。但在继承的方式中,慎用this!
方式二:同步方法
将操作共享数据的方法声明为synchronized。即此方法为同步方法,
能够保证当其中一个线程执行此方法时其它线程在外等待直至此线程执行完毕。
>同步方法的锁:this
4.线程的同步的弊端:由于同一个时间只能有一个线程访问共享数据,效率变低了。
以上是看尚硅谷视频载录下来的
0 0
- Java基础的IO和线程知识
- 【java基础:IO】Java的IO知识整理!
- java基础 IO/线程/GUI,装饰模式
- IO流操作的基础编程知识
- 【Java基础】:线程的创建和启动
- Java知识(IO流、.InputStream和OutputStream)
- Java程序员必须掌握的线程知识-Callable和Future
- Java程序员必须掌握的线程知识-Callable和Future
- java线程的某些知识
- java基础--线程--线程的基本控制和交互--02
- 【java基础:IO】管道流PipedInputStream和PipedOutputStream的Demostration
- java.io方面的知识总结
- java 中IO 流的知识
- java的文件IO编程知识总结
- 关于java io知识的初步了解
- Java中IO知识的解释
- 容器/IO/线程知识补漏
- java 线程的基础
- 黑马程序员之Map
- 吸血鬼数字(一个4位数字,可以拆分2个2位数数字的乘积,顺序不限。)
- poj 2955 Brackets 【区间dp 入门】
- 集合的交并差(链表)(未完)
- Android Studio——点击事件监听
- Java基础的IO和线程知识
- 结构体例题汇总
- 2009年系统分析师上午试题1-2
- 微软亚洲研究院开源图数据库GraphView
- 回调
- memcached-数据结构
- hdoj1004(let the ballooon rsie
- eclipse出现 Some characters cannot be mapped using "GBK" character encoding 错误代码的解决办法
- [Servlet&JSP] 标准标签