随笔分类 -  Java

上一页 1 2 3 4 5 下一页

java 多线程 Thread 锁ReentrantLock;Condition等待与通知;公平锁
摘要:1,介绍: import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; 在JAVA的多线程编程中,我们可以使用synchronized关键字来实现线程之间的同步互斥,但是JDK1.5 阅读全文

posted @ 2021-04-24 22:47 zhangmingda 阅读(150) 评论(0) 推荐(0) 编辑

java 多线程 Thread.join子线程结束父线程再运行;join(long):等待超时毫秒数
摘要:Join的使用 目的:当子线程运行结束后,父线程才能再继续运行 /** * @ClassName ThreadJoinExample * @projectName: object1 * @author: Zhangmingda * @description: XXX * date: 2021/4/2 阅读全文

posted @ 2021-04-24 21:53 zhangmingda 阅读(186) 评论(0) 推荐(0) 编辑

java 多线程 :ThreadLocal 共享变量多线程不同值方案;InheritableThreadLocal变量子线程中自定义值,孙线程可继承
摘要:ThreadLocal类的使用 变量值的共享可以使用public static变量的形式,所有的线程都是用同一个public static变量。如果想实现每一个线程都有自己的值。该变量可通过ThreadLocal实现 定义:ThreadLocal<T> name = new ThreadLocal< 阅读全文

posted @ 2021-04-24 20:15 zhangmingda 阅读(307) 评论(0) 推荐(0) 编辑

java 多线程:线程通信-等待通知机制wait和notify方法;(同步代码块synchronized和while循环相互嵌套的差异);管道通信:PipedInputStream;PipedOutputStream;PipedWriter; PipedReader
摘要:1、等待通知机制: 等待通知机制的原理和厨师与服务员的关系很相似: 1,厨师做完一道菜的时间不确定,所以厨师将菜品放到“菜品传递台”上的时间不确定 2,服务员什么时候可以取到菜,必须等到厨师做完之后放到菜品传递台上才行。所以,服务员会等待厨师。 3,厨师做完菜之后放到菜品传递台上,就相当于通知了服务 阅读全文

posted @ 2021-04-23 16:20 zhangmingda 阅读(169) 评论(0) 推荐(0) 编辑

java IO操作和计算操作:工作内存和主内存 volatile关键字作用;原子操作对象AtomicInteger ....
摘要:应该停止但无法停止的计算线程 如下线程示例,线程实例中while循环中的条件,在主线程中通过调用实例方法更新后,while循环并没有更新判断变量是否还成立。而是陷入了while(true)死循环. import javafx.scene.paint.Stop; /** * @ClassName Th 阅读全文

posted @ 2021-04-22 22:57 zhangmingda 阅读(103) 评论(0) 推荐(0) 编辑

java 多线程:线程死锁,如何判断程序是否有死锁代码块儿
摘要:线程死锁 死锁是指两个或两个以上的线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去(百度百科)。 代码示例: /** * @ClassName ThreadDeadLock * @projectName: object1 * @author: 阅读全文

posted @ 2021-04-22 20:23 zhangmingda 阅读(274) 评论(0) 推荐(0) 编辑

java 多线程: Thread 并发访问-代码块同步synchronized {};String作为被锁的对象
摘要:方法同步的弊端 方法同步的时候,如果一个方法需要线程安全控制的代码速度其实很快,但是还有其他的业务逻辑代码耗时非常长(比如网络请求),这样所有的线程就在这一块就等待着了,这样造成了极大的资源浪费如果并发量很大,可能会造成系统崩溃。(并发的线程遇到synchronized同步的方法,变成串行....) 阅读全文

posted @ 2021-04-22 19:15 zhangmingda 阅读(190) 评论(0) 推荐(0) 编辑

java 多线程:Thread 并发线程: 方法同步synchronized关键字,与static的结合
摘要:1、方法内的变量是安全的 方法内定义的变量,每个变量对应单独的内存变量地址,多个线程之间相互不影响。多个线程之间的变量根本没有一毛钱关系 public class ThreadFuncVarSafe { public static void main(String[] args) { Runnabl 阅读全文

posted @ 2021-04-22 13:36 zhangmingda 阅读(392) 评论(0) 推荐(0) 编辑

java 多线程:Thread类常用方法:setPriority优先级、interrupt中断标记、suspend暂停与唤醒resume(已过时);daemon守护线程
摘要:常用方法: boolean isAlive() 测试此线程是否存活。 boolean isDaemon() 测试此线程是否为守护程序线程。 static void sleep?(long millis) 导致当前正在执行的线程休眠(暂时停止执行)指定的毫秒数,具体取决于系统计时器和调度程序的精度和准 阅读全文

posted @ 2021-04-21 19:09 zhangmingda 阅读(418) 评论(0) 推荐(0) 编辑

java 多线程:线程安全问题synchronized关键字解决
摘要:背景: 多个线程同时修改一个变量时,有概率导致两次修改其中某些次被覆盖。 例如:如下案例一个变量值为3,三个线程同时对其-1,如果按顺序执行,每次减完的结果应该是2,1,0。但实际运行中有可能变为0,0,0 ;0 1 1 等情况 /** * @ClassName VarNotSafe * @proj 阅读全文

posted @ 2021-04-20 11:26 zhangmingda 阅读(296) 评论(0) 推荐(0) 编辑

java 多线程:Callable接口;FutureTask类实现对象【Thread、Runnable、Callable三种方式实现多线程的区别】
摘要:Callable接口介绍: Java5开始,Java提供了Callable接口,像是Runnable接口的增强版,Callable接口提供了一个 call()方法可以作为线执行体. call()方法比run()方法功更强大。call()方法可以有返回值,call()方法可以抛出异常 实现方法: 创建 阅读全文

posted @ 2021-04-19 17:35 zhangmingda 阅读(118) 评论(0) 推荐(0) 编辑

java 多线程:Thread类;Runnable接口
摘要:1,进程和线程的基本概念: 1.什么是进程: 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数 阅读全文

posted @ 2021-04-19 16:32 zhangmingda 阅读(226) 评论(0) 推荐(0) 编辑

java 输入输出 对象序列化implements Serializable与反序列化:ObjectOutputStream.writeObject() ;objectInputStream.readObject() ;serialVersionUID字段注意
摘要:对象序列化 对象序列化的目标是将对象保存到磁盘中,或允许在网络中直接传输对象。对象序列化机制允许把内存中的 Java 对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,通过网络将这种二进制流传输到另1个网络节点。其他程序一旦获得了这种二进制流(无论是从磁盘中获取的,还是通过网络 阅读全文

posted @ 2021-04-18 22:32 zhangmingda 阅读(144) 评论(0) 推荐(0) 编辑

java 输入输出IO流 RandomAccessFile文件的任意文件指针位置地方来读写数据
摘要:RandomAccessFile的介绍: RandomAccessFile是Java输入输出流体系中功能最丰富的文件内容访问类,它提供了众多的方法来访问文件内容,它既可以读取文件内容,也可以向文件输出数据。与普通的输入/输出流不同的是,RandomAccessFile 支持"随机访问"的方式,程序可 阅读全文

posted @ 2021-04-18 20:55 zhangmingda 阅读(308) 评论(0) 推荐(0) 编辑

java 输入输出IO流:标准输入/输出System.in;System.out;System.err;【重定向输入System.setIn(FileinputStream);输出System.setOut(printStream);】
摘要:Java的标准输入输出分别通过System.in和System.out来代表的,在默认情况下它分别代表键盘和显示器,当程序通过System.in来获取输入时,实际上是从键盘读取输入 当程序试图通过 System.out 执行输出时,程序总是输出到屏幕: 从System类的源码可以看出in;out;e 阅读全文

posted @ 2021-04-18 17:07 zhangmingda 阅读(368) 评论(0) 推荐(0) 编辑

java 输入输出IO 转换流-字符编码
摘要:编码和其产生的问题: 计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字、英文、标点符号、汉字等字符是二进制数转换之后的结果。 按照某种规则,将字符存储到计算机中,称为编码 。反之,将存储在计算机中的二进制数按照某种规则解析显示出来,称为解码 。 比如说,按照A规则存储,同样按照A规则 阅读全文

posted @ 2021-04-18 16:35 zhangmingda 阅读(545) 评论(0) 推荐(0) 编辑

java 输入输出IO流 字节流| 字符流 的缓冲流:BufferedInputStream;BufferedOutputStream;BufferedReader(Reader in);BufferedWriter(Writer out)
摘要:什么是缓冲流: 缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。 图解: 1、字节缓冲流BufferedInputStream;BufferedOutputStream: public BufferedInputStre 阅读全文

posted @ 2021-04-18 14:08 zhangmingda 阅读(91) 评论(0) 推荐(0) 编辑

java 输入输出IO流 IO异常处理try(IO流定义){IO流使用}catch(异常){处理异常}finally{死了都要干}
摘要:IO异常处理 之前我们写代码的时候都是直接抛出异常,但是我们试想一下,如果我们打开了一个流,在关闭之前程序抛出了异常,那我们还怎么关闭呢?这个时候我们就要用到异常处理了。 try-with-resource语句: 确保在异常出现后 打开的流能自动关闭,无需单独再写.close()流关闭语句。 语法: 阅读全文

posted @ 2021-04-17 22:09 zhangmingda 阅读(592) 评论(0) 推荐(0) 编辑

java 输入输出IO流 字符流 FileWriter FileReader
摘要:为什么要使用字符流 当使用字节流读取文本文件时,可能会有一个小问题。就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储。所以Java提供一些字符流类,以字符为单位读写数据,专门用于处理文本文件。 Writer Writer抽象类是表示用于写出字符流的所有类的超类,将 阅读全文

posted @ 2021-04-17 21:15 zhangmingda 阅读(107) 评论(0) 推荐(0) 编辑

java 输入输出IO流:FileOutputStream FileInputStream
摘要:什么是IO: 生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了 ctrl+s ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?键盘、内存、硬盘、外接设备等等。 我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方 阅读全文

posted @ 2021-04-17 16:05 zhangmingda 阅读(308) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 下一页

导航