Fork me on GitHub
上一页 1 ··· 7 8 9 10 11 12 13 下一页
摘要: 上一章我们已经简要的介绍了Java中的一些锁,本章我们就详细的来说说这些锁。 synchronized锁 synchronized锁是什么? synchronized是Java的一个关键字,它能够将代码块(方法)锁起来 它使用起来是非常简单的,只要在代码块(方法)添加关键字synchronized, 阅读全文
posted @ 2018-09-21 17:59 JackpotHan 阅读(1338) 评论(0) 推荐(0) 编辑
摘要: 在学习或者使用Java的过程中进程会遇到各种各样的锁的概念:公平锁、非公平锁、自旋锁、可重入锁、偏向锁、轻量级锁、重量级锁、读写锁、互斥锁、死锁、活锁等,本文将简概的介绍一下各种锁。 公平锁和非公平锁 公平锁是指多个线程在等待同一个锁时,必须按照申请锁的先后顺序来一次获得锁。 公平锁的好处是等待锁的 阅读全文
posted @ 2018-09-19 14:29 JackpotHan 阅读(250) 评论(0) 推荐(1) 编辑
摘要: 上一章已经提到“如果一个进程被多次回滚,迟迟不能占用必需的系统资源,可能会导致进程饥饿”,本文我们详细的介绍一下“饥饿”和“公平”。 Java中导致饥饿的原因 在Java中,下面三个常见的原因会导致线程饥饿: 高优先级线程吞噬所有的低优先级线程的CPU时间 你能为每个线程设置独自的线程优先级,优先级 阅读全文
posted @ 2018-09-19 11:41 JackpotHan 阅读(900) 评论(0) 推荐(1) 编辑
摘要: 简介 当两个以上的运算单元,双方都在等待对方停止运行,以获取系统资源,但是没有一方提前退出时,就称为死锁。在多任务操作系统中,操作系统为了协调不同进程,能否获取系统资源时,为了让系统运作,必须要解决这个问题。 例如,如果线程1锁住了A,然后尝试对B进行加锁,同时线程2已经锁住了B,接着尝试对A进行加 阅读全文
posted @ 2018-09-19 10:32 JackpotHan 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 提到ThreadLocal,有些Android或者Java程序员可能有所陌生,可能会提出种种问题,它是做什么的,是不是和线程有关,怎么使用呢?等等问题,本文将总结一下我对ThreadLocal的理解和认识,希望让大家理解ThreadLocal更加透彻一些。 ThreadLocal是什么 Thread 阅读全文
posted @ 2018-09-18 14:38 JackpotHan 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 上一节已经讲到,使用Synchronzied代码块可以解决共享对象的竞争问题,其实还有其他的方法也可以避免资源竞争问题,我统称他们为Java同步块。Java 同步块(synchronized block)用来标记方法或者代码块是同步的,可以避免资源竞争,避免死锁。。 Java 同步关键字(synch 阅读全文
posted @ 2018-09-17 22:08 JackpotHan 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 前面我们已经介绍了:当对象和变量存储到计算机的各个内存区域时,必然会遇到的两个问题及解决方法 共享对象的可见性-- 解决方法:使用java volatile关键字 共享对象的竞争现象 -- 解决方法:使用java synchronized代码块 那么,volatile和 synchronized有什 阅读全文
posted @ 2018-09-17 21:49 JackpotHan 阅读(275) 评论(0) 推荐(1) 编辑
摘要: Java内存模型 前面讲到了Java线程之间的通信采用的是共享内存模型,这里提到的共享内存模型指的就是Java内存模型(简称JMM),JMM决定一个线程对共享变量的写入何时对另一个线程可见。从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(main memor 阅读全文
posted @ 2018-09-17 17:56 JackpotHan 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 竞态条件与临界区 在同一程序中运行多个线程本身不会导致问题,问题在于多个线程访问了相同的资源。当多个线程同时访问同一个资源,并且其中的一个或者多个线程对这个资源进行了写操作,才会产生竞态条件。多个线程同时读同一个资源不会产生竞态条件。如,同一内存区(变量,数组,或对象)、系统(数据库,web ser 阅读全文
posted @ 2018-09-14 17:57 JackpotHan 阅读(250) 评论(0) 推荐(0) 编辑
摘要: Java线程 Java线程类也是一个object类,它的实例都继承自java.lang.Thread或其子类。 Java可以用如下方式创建一个线程: 执行该线程可以调用该线程的start()方法: 在上面的例子中,我们并没有为线程编写运行代码,因此调用该方法后线程就终止了。 创建、执行线程的方式 无 阅读全文
posted @ 2018-09-14 14:27 JackpotHan 阅读(329) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 下一页