什么是分布式锁 在学习Java多线程编程的时候,锁是一个很重要也很基础的概念,锁可以看成是多线程情况下访问共享资源的一种线程同步机制。这是对于单进程应用而言的,即所有线程都在同一个JVM进程里的时候,使用Java语言提供的锁机制可以起到对共享资源进行同步的作用。如果分布式环境下多个不同线程需要对共享 ...
分类:
其他好文 时间:
2020-01-30 17:04:58
阅读次数:
57
一、简介 volatile是Java提供的一种轻量级的同步机制。Java 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量,相比于synchronized(synchronized通常称为重量级锁),volatile更轻量级,因为它不会引起线程上下文的切换和调度。但是volat ...
分类:
其他好文 时间:
2020-01-28 21:11:52
阅读次数:
63
public static void main(String[] args) { // 线程池 ExecutorService exec = Executors.newCachedThreadPool(); // 只能5个线程同时访问 final Semaphore semp = new Semap ...
分类:
编程语言 时间:
2020-01-27 22:07:42
阅读次数:
94
线程安全的定义: 当多个线程访问某个类时,不管运行时环境采用何种调度方式活着这些线程如何交互执行,并且在主调用代码中不需要任何额外的同步或者协同操作,这个类都能表现出正确的行为,那么这就称这个类是线程安全的 线程安全的类中,封装了必要的同步机制,因我们的主调用代码并不需要进一步的采取同步措施 竞态条 ...
分类:
编程语言 时间:
2020-01-27 17:33:10
阅读次数:
71
volatile是什么? volatile是JVM提供的一种轻量级的同步机制,其具有三个特性。 保证可见性 不保证原子性 禁止指令重排 保证可见性 JMM(java memory model)中文翻译为Java内存模型,是JVM下的一种规范,规定了JVM对于程序在内存中的变量应该以什么样的一样形式进 ...
分类:
编程语言 时间:
2020-01-23 19:56:10
阅读次数:
99
之前我一直做的是php开发,也一直比较忙,没时间安排学习前端,现在终于有点时间了,鉴于现在前端开发大行其道,作为一个合格的开发者,也改学习学习了。我准备在半个月能搞定这些前端开发的知识,虽无法做到完全精通,但至少要能够写些小小的程序。 那么,前端开发需要学习哪些知识呢。 由于我已经具备了JavaSc ...
分类:
其他好文 时间:
2020-01-16 23:49:50
阅读次数:
78
ThreadLocal是什么 以前面试的时候问到ThreadLocal总是一脸懵逼,只知道有这个哥们,不了解他是用来做什么的,更不清楚他的原理了。表面上看他是和多线程,线程同步有关的一个工具类,但其实他与线程同步机制无关。 线程同步机制是多个线程共享同一个变量,而ThreadLocal是为每个线程创 ...
分类:
其他好文 时间:
2020-01-16 12:53:54
阅读次数:
77
多线程 (1) 掌握Executors可以创建的三种线程池的特点及适用范围。 1.继承Thread类,重写父类run()方法 2.实现runnable接口 3.使用ExecutorService、Callable、Future实现有返回结果的多线程(JDK5.0以后) (2) 多线程同步机制。 在需 ...
分类:
编程语言 时间:
2020-01-13 21:47:28
阅读次数:
96
多进程和多线程原理 fork后子进程会复制父进程的task_struct结构,并为子进程的堆栈分配物理页。理论上来说,子进程应该完整的复制父进程的堆栈以及数据空间,但是2者共享正文段。 由于一般fork后面都结着exec,所以现在的fork都在用写时复制的技术,顾明思议,就是数据段,堆栈一开始并不复 ...
分类:
编程语言 时间:
2020-01-12 13:29:36
阅读次数:
84
近来在项目中用到条件变量和信号量做同步时,这一块一直都有了解,但也一直没有总结,这次总结一下,给大家提供点参考,也给自己留点纪念。 首先,关于信号量和条件变量的概念可以自行查看APUE,我这直接把APUE中的代码拿过来对比; 条件变量的使用: 其中最后在调用也可以按照下面格式调用,两种各有优劣,具体 ...
分类:
系统相关 时间:
2020-01-09 01:00:15
阅读次数:
243