2022年3月12日
摘要: 1.创建字节输入节点流 :FileInputStream fis = new FileInputStream("读取的文件路径")2.打印输入流所读取到的有效字节:byte[] bytes = new byte[4];int i= -1; // 当读取的值为-1的时候 a56爆大奖在线娱乐没有值了while((n 阅读全文
posted @ 2022-03-12 09:14 墨染Diana 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 1创建字节输出节点流:FileOutputStream fos = new FileOutputStream("保存的文件地址",true);true代表输出的为追加 false为默认内容覆盖2 输出字节到指定的文件中字节输出节点流名.write(内容);一次只能输出一个字节2.2一次性输出多个字节 阅读全文
posted @ 2022-03-12 09:13 墨染Diana 阅读(72) 评论(0) 推荐(0) 编辑
  2022年3月11日
摘要: 1创建读锁和写锁两个类 继承接口Runnable 重写run方法创建读写锁实现类的对象 写出有参构造方法2 创建一个读写锁的实现类:在类里面创建读写锁(读锁和写锁都要创建) 给出私有的属性private ReentrantReadWriteLock rrwl = new ReentrantReadW 阅读全文
posted @ 2022-03-11 16:53 墨染Diana 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 1.创建Runnable的实现类创建 2中的类的属性重写run方法写一个有参构造方法 将属性给形参2写一个类在类里创建重入锁对象ReentrantLock reentrantLock = new ReentrantLock();锁的名字.lock()上锁锁的名字.unlock()释放锁(一般写在fi 阅读全文
posted @ 2022-03-11 16:52 墨染Diana 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 1.创建类实现Callable接口 并重写call方法 (需要写泛型)在call方法里写具体的实现任务2.创建动态线程池Executors.newCachedThreadPool();3将线程任务提交给线程池 并用Future<>接收Future<>接受名字= 线程池名字.submit(new 实现 阅读全文
posted @ 2022-03-11 16:52 墨染Diana 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 1.通过Executors.newCachedThreadPool来创建动态线程池通过Executors.newFixedThreadPool(3)来创建固定值线程池2.提交线程任务交由线程池分配线程任务 线程名.submit(new 实现类名):3关闭线程池线程名.shutdown(); 阅读全文
posted @ 2022-03-11 16:51 墨染Diana 阅读(74) 评论(0) 推荐(0) 编辑