• java字节流字符流线程


    字节输出流:
    FileOutputStream
    写入数据:write()
    字节输入流:
    FileInputStream
    读取数据:read()

    1、字符输入输出流:
    1)字符输出流:FileWriter
    2)字符输入流:FileReader

    2、练习:
    通过字符输入输出流进行文件的复制.

    3、缓冲流:(高级流)
    BufferedOutputStream 字节缓冲输出流
    BufferedInputStream 字节缓冲输入流
    缓冲流作用:
    提高读取和写入数据的效率.

    使用步骤:
    	1)创建缓冲流对象
    	例如:
    		字节缓冲输入流对象 对象名 = new 字节缓冲输入流(字节输入流对象);
    		字节缓冲输出流对象 对象名 = new 字节缓冲输出流(字节输出流对象);
    	2)读取或者写入数据:
    			读取数据:通过字节缓冲输入流对象名.read();
    			写入数据:通过字节缓冲输出流对象名.writer();
    	3)释放资源
    	
    	练习:
    		分别测试低级流文件复制和高级流文件复制的时间.
    		要求:
    			低级流: FileOutputStream    FileIutputStream
    			高级流: BufferedOutputStream   BufferedIutputStream
    	
    	字符缓冲流:
    		BufferedReader		字符缓冲输入流
    		BufferedWriter			字符缓冲输出流
    	
    	创建字符高级流对象:
    		BufferedReader br = new BufferedReader(new FileReader("文件路径"));
    		BufferedWriter bw = new BufferedWriter(new FileWriter("文件路径"));
    

    4、多线程:
    并行:指两个或者多个事件在同一时刻发生.(同时发生)
    并发:指两个或者多个事件在同一时间段内发生的.

    		进程:是指一个在内存中运行的应用程序.是一个独立的单元,一个进程中至少有一个线程.
    		线程:是指执行进程中任务功能.
    		
    		实现多线程两种方式:
    		1)继承Thread类
    			使用步骤:
    					a.自定义一个类型去继承Thread
    					B.手动添加run()方法,进行重写   (run方法的作用就是写线程功能代码的)
    					c.创建自定义线程类对象,然后开启线程
    					
    					例如:
    							class 类名 extends Thread{
    								public void run(){
    									功能代码;
    								}
    							}
    							自定义类名 对象名 = new 自定义类名()
    							对象名.start().
    							
    			2)实现Runnable接口
    				使用步骤:
    						a.自定义实现类去实现Runnable接口
    						b.重写run方法
    						c.需要通过创建线程类的有参构造,把Runnable接口的实现类对象传进去.
    						d.开启线程.
    					例如:
    							class 实现类名 implements Runnable{
    								public void run(){
    									功能代码;
    								}
    							}
    							
    							new Thread(实现类对象).start();
    				3)匿名内部类实现多线程的方式:
    					例如:
    					Runnable r=new Runnable(){
    						public void run(){
    									功能代码;
    								}
    					};
    					new Thread(r).start();
    

    5、通过同步代码块解决线程安全问题:
    同步代码块固定语法:
    synchronized(同步锁对象){
    需要同步操作的方法
    }
    注意:
    1)对象的同步锁只是一个概念,可以理解为在对象上标记了一个锁.
    2)同步锁可以是任意类型.
    3)多个线程对象,要使用同一把锁.

  • 相关阅读:
    sqlserver 字符串拆分和取某分隔符之前的字符串
    三目运算符引发的一次事故
    SqlServer 查询死锁,杀死死锁进程*转载
    sql不带锁查询
    各种replace待续
    jmeter压力测试
    docker基础学习
    被动式pocscan扫描神器搭建
    (转)Ubuntu 17.04_64上搭建巡风扫描系统(资产信息漏洞扫描内网神器)
    (转)搭建本地 8.8 W 乌云漏洞库
  • 原文地址:https://www.cnblogs.com/Pythons/p/10932285.html
Copyright © 2020-2023  润新知