- 博客(9)
- 收藏
- 关注
原创 高并发编程-06-可见性-volatile
1,volatile的作用volatile是一个轻量级的线程同步机制。它的特性之一,是保证了变量在线程之间的可见性。当然,还有我们之前说的,解决指令重排的问题volatile保证了在多个线程之间是可见的,但不能保证原子性操作当一个线程修改了变量的值之后,其他线程可以感知到2,volatile vs synchronizedsynchronized
2018-01-13 17:06:20 198
原创 高并发编程-04-活跃性问题-死锁,活锁,饥饿
死锁,饥饿,活锁1,死锁多个线程,各自占对方的资源,都不愿意释放,从而造成死锁工具:使用jconsole可以检测程序运行的死锁线程2,饥饿多个线程访问同一个同步资源,有些线程总是没有机会得到互斥锁,这种就叫做饥饿。出现饥饿的三种情况a,高优先级的线程吞噬了低优先级的线程的CPU时间片理论上来说,线程优先级高的线程会比线程优先级低的线程
2018-01-13 17:04:47 330
原创 高并发编程-03-线程的安全性
之前,我们在前面已经介绍过了线程的安全性,本篇我们将继续来深挖这个问题,继续来探讨什么线程安全,原子性及加锁机制。1,什么是线程安全?线程安全,有两个关键词,“共享”和“可变”。共享是指可以被多个线程同时访问;可变是指变量的值在生命周期内是可以变化的;一个对象是否需要线程安全的,取决于它是否被多个线程访问;而如何保证一个对象的线程安全,则需要采用同步
2018-01-12 10:30:28 180
原创 高并发编程-02-并发编程存在的风险
多线程的高并发编程提高了我们的CPU利用率及简化开发模式,但是又同时给我们带来了风险,使用不当就会有风险,那到底有什么风险?我们来看看1,线程的安全性问题假设,我现在编写了一个程序,来保存系统的访问量,如何实现呢?很简单,我可以设置一个全局变量,然后,每次用户访问一次系统,我就自增1,那么这个程序应该是这样写的,如下:public class System {
2018-01-11 09:21:38 334
原创 高并发编程-01-并发编程的发展历史
其实,在早期计算机并没有包含操作系统,这个时候,这个计算机只跑一个程序,这个程序独享计算机的所有资源,这个时候不存在什么并发问题,但是对计算机的资源来说,确实是一种浪费。于是,操作系统出现了,操作系统改变了这种现状,让计算机可以运行多个程序,并且不同的程序占用独立的计算机资源,如内存,CPU等。操作系统的出现,主要有以下几点原因:1,资源利用率:可以在其他程序执行过程出现等待的
2018-01-11 09:18:25 396
原创 高并发编程-00-创建多线程的7种方式
1,继承Thread主要掌握:线程的初始化,启动,中断的正确处理方式(interrupted)public class Demo1 { public static void main(String[] args) { MyThread thread = new MyThread(); thread.start();
2018-01-09 22:43:22 1156
原创 高并发编程专题-说明
大家好,并发编程是一个提升程序员level的关键专题,本专题会从理论结合实践逐步深入,尽量用通俗的语言和跑的通的程序来给大家讲解,重点每个地方都会形成一个闭环,让大家真正掌握高并发编程的核心要点,让我们一起来学习,感受技术的乐趣。最后给大家一个经验之谈,要提升自己的技术逼格,一句话,“不断走出自己的舒适区”技术说明:本专题会以java作为编程语言,要求大家具备javase的基础知识
2018-01-09 22:41:40 257
原创 JavaEE完整技术体系文章陆续上映!!!
特别申明,将利用工作业务时间,整理相关的技术文档,保证了文档的系统性和完整性为原则,同时也要保证专业性,以给大家提供最完整最专业的学习资料。业余时间整理,期待大家的关注和支持,谢谢!
2016-08-23 20:22:58 399
原创 搭建Java开发环境,书写你的第一个Java程序
Java体系的划分:l JavaSE(Java Platform,Standard Edition),java平台标准版l JavaME(Java Platform,Micro Edition),java平台微版l JavaEE(Java Platform,Enterprise Edition),java平台企业版那我们要学习JavaEE,JavaSe是必经之路,Ja
2016-08-23 10:30:04 348
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人