摘要: 同步、异步、阻塞、非阻塞都是和IO(输入输出)有关的概念。最简单的文件读取就是IO操作。而在文件读取这件事儿上,可以有多种方式。 怎么理解同步,异步和阻塞,非阻塞? 那我先讲下同步异步和阻塞非阻塞这两大块之间的区别? 他们针对的对象不同,好比A调用B,同步异步针对的是被调用者也就是B,阻塞非阻塞针对 阅读全文
posted @ 2021-03-30 11:55 JustJavaIt 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 线程(Thread)是并发编程的基础,一般会作为并发编程的起始问题,用于引出更多的关于并发编程的面试问题。对于线程的掌握程度也决定了你对并发编程的掌握程度。 什么是进程?线程?区别? 详细介绍请查阅我的另一篇博文——进程?线程?协程? 线程安全? 详细介绍请查阅我的另一篇博文——线程安全 创建线程的 阅读全文
posted @ 2019-07-14 17:22 JustJavaIt 阅读(8676) 评论(2) 推荐(0) 编辑
摘要: 在《深入理解Java虚拟机中》关于Java堆内存有这样一段对逃逸分析的描述: 那么究竟怎么理解逃逸分析?我们先来看一个例子 运行期优化示例 两层循环,内层循环创建1000次对象,外层循环对内层循环进行计时统计。 public class JIT1 { public static void main( 阅读全文
posted @ 2022-04-16 08:34 JustJavaIt 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 一.输入网址(URL) URL 当我们想要打开一个页面时,很简单的会想到去输入一个网址,比如说(www.baidu.com)这里俗称的网址其实就是URL(统一资源定位符,Uniform Resource Locator)用于定位互联网上资源,俗称网址。 URL格式 protocol://host.d 阅读全文
posted @ 2022-03-12 13:34 JustJavaIt 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 什么是ThreadLocal? 我们知道一个对象的所有线程共享它的全局变量,所以这些变量是非线程安全的,我们可以使用同步技术。但是当我们不想使用同步的时候,我们可以选择ThreadLocal变量。每个线程都会拥有他们自己的Thread变量,它们可以使用get()/set()方法去获取他们的默认值或者 阅读全文
posted @ 2022-02-17 18:00 JustJavaIt 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 本篇内容为线程专题 -- 线程的创建,状态,工作过程中的部分内容。 在项目实践中经常会遇到一个场景,就是需要等待某几件事情完成后才能继续往下执行,比如多个线程加载资源,需要等待多个线程全部加载完毕再汇总处理。Thread类中有一个join方法就可以做这个事情, join方法则是Thread类直接提供 阅读全文
posted @ 2022-02-14 20:45 JustJavaIt 阅读(20) 评论(0) 推荐(0) 编辑
摘要: Runnable 的缺陷 (1)不能拿到任务的返回结果 第一个缺陷,对于 Runnable 而言,不能拿到任务的返回结果,虽然可以利用其他的一些办法,比如在 Runnable 方法中写入日志文件或者修改某个共享的对象的办法,来达到保存线程执行结果的目的,但这种解决问题的行为效率着实不高。 实际上,在 阅读全文
posted @ 2022-02-13 20:48 JustJavaIt 阅读(23) 评论(0) 推荐(0) 编辑