Java并发(二十一)----wait notify介绍
1、小故事 - 为什么需要 wait 由于条件不满足(没烟干不了活啊,等小M把烟送过来),小南不能继续进行计算 但小南如果一直占用着锁,其它人就得一直阻塞,效率太低 于是老王单开了一间休息室(调用 wait 方法),让小南到休息室(WaitSet)等着去了,但这时锁释放开,其它人可 »
1、小故事 - 为什么需要 wait 由于条件不满足(没烟干不了活啊,等小M把烟送过来),小南不能继续进行计算 但小南如果一直占用着锁,其它人就得一直阻塞,效率太低 于是老王单开了一间休息室(调用 wait 方法),让小南到休息室(WaitSet)等着去了,但这时锁释放开,其它人可 »
1、小故事 故事角色 老王 - JVM 小南 - 线程 小女 - 线程 房间 - 对象 房间门上 - 防盗锁 - Monitor-重量级锁 房间门上 - 小南书包 - 轻量级锁 房间门上 - 刻上小南大名 - 偏向锁 -对象专属于某个线程使用 批量重刻名 - 一个类的 »
1、Java 对象头 以 32 位虚拟机为例 普通对象 |--------------------------------------------------------------| | Object Header (64 bits) »
1、常见线程安全类 String Integer StringBuffer Random Vector Hashtable java.util.concurrent (JUC)包下的类 这里说它们是线程安全的是指,多个线程调用它们同一个实例的某个方法时,是线程安全的。 »
1、成员变量和静态变量是否线程安全 如果它们没有共享,则线程安全 如果它们被共享了,根据它们的状态是否能够改变,又分两种情况 如果只有读操作,则线程安全 如果有读写操作,则这段代码是临界区,需要考虑线程安全 2、局部变量是否线程安全 局部变量是线程安全的 但局部变 »
所谓的“线程八锁” 其实就是看 synchronized 锁住的是哪个对象 情况1:12 或 21都是有可能的,就看cpu先调度哪个线程 @Slf4j(topic = "c.Number") class Number{ public synchronized void a() { »
今天我们学习了网络编程和多线程技术的写法区别。我们主要关注了在Java中使用socket和多线程结合实现服务器处理多个客户端连接的阻塞IO的方法,以及在Python中使用multiprocessing模块创建多线程的方式。通过一个实例来说明了这些概念,并指出了需要注意的问题。其实了解了这些基本用法后 »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »