肥宅兜

导航

随笔分类 -  Java多线程

Java多线程8:wait()和notify()/notifyAll()
摘要:轮询 线程本身是操作系统中独立的个体,但是线程与线程之间不是独立的个体,因为它们彼此之间要相互通信和协作。 想像一个场景,A线程做int型变量i的累加操作,B线程等待i到了10000就打印出i,怎么处理?一个办法就是,B线程while(i == 10000),这样两个线程之间就有了通信,B线程不断通 阅读全文

posted @ 2016-08-29 00:09 肥宅兜 阅读(594) 评论(0) 推荐(0)

Java多线程7:死锁
摘要:前言 死锁单独写一篇文章是因为这是一个很严重的、必须要引起重视的问题。这不是夸大死锁的风险,尽管锁被持有的时间通常很短,但是作为商业产品的应用程序每天可能要执行数十亿次获取锁->释放锁的操作,只要在这数十亿次操作中只要有一次发生了错误,就可能导致程序中发生死锁,并且即使通过压力测试也不可能找出所有潜 阅读全文

posted @ 2016-08-21 20:00 肥宅兜 阅读(258) 评论(0) 推荐(0)

Java多线程6:synchronized锁定类方法、volatile关键字及其他
摘要:同步静态方法 synchronized还可以应用在静态方法上,如果这么写,则代表的是对当前.java文件对应的Class类加锁。看一下例子,注意一下printC()并不是一个静态方法: 从运行结果来,对printC()方法(非静态)的调用和对printA()方法、printB()方法(静态)的调用时 阅读全文

posted @ 2016-08-21 19:47 肥宅兜 阅读(329) 评论(0) 推荐(0)

Java多线程5:synchronized锁方法块
摘要:synchronized同步代码块 用关键字synchronized声明方法在某些情况下是有弊端的,比如A线程调用同步方法执行一个较长时间的任务,那么B线程必须等待比较长的时间。这种情况下可以尝试使用synchronized同步语句块来解决问题。看一下例子: 这个实验可以得出以下两个结论: 1、当A 阅读全文

posted @ 2016-08-21 17:38 肥宅兜 阅读(820) 评论(0) 推荐(0)

Java多线程4:synchronized锁机制
摘要:脏读 一个常见的概念。在多线程中,难免会出现在多个线程中对同一个对象的实例变量进行并发访问的情况,如果不做正确的同步处理,那么产生的后果就是"脏读",也就是取到的数据其实是被更改过的。 按照正常来看应该打印"a num = 100"和"b num = 200"才对,现在却打印了"b num = 20 阅读全文

posted @ 2016-08-21 15:35 肥宅兜 阅读(1125) 评论(0) 推荐(0)

Java多线程3:Thread中的静态方法
摘要:Thread类中的静态方法 Thread类中的静态方法表示操作的线程是"正在执行静态方法所在的代码块的线程"。为什么Thread类中要有静态方法,这样就能对CPU当前正在运行的线程进行操作。下面来看一下Thread类中的静态方法: 1、currentThread() currentThread()方 阅读全文

posted @ 2016-08-21 14:21 肥宅兜 阅读(2835) 评论(0) 推荐(0)

进程与线程的简单解释
摘要:进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。 最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。 1. 计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。 2. 假定工厂的电力有限,一次只能供给一个车间使 阅读全文

posted @ 2016-07-22 10:52 肥宅兜 阅读(247) 评论(0) 推荐(0)

40个Java多线程问题总结
摘要:40个问题汇总 1、多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓"知其然知其所以然","会用"只是"知其然","为什么用"才是"知其所以然",只有达到"知其然知其所以然"的程度才可以说是把一个知识点运用自如。OK,下面说说 阅读全文

posted @ 2016-07-16 15:14 肥宅兜 阅读(3061) 评论(0) 推荐(1)

关于Java并发编程的总结和思考
摘要:版权声明:本文为博主原创文章,未经博主允许不得转载。 版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[-] 为什么需要并发 误解和正解 并发编程的原则和技巧 单一职责原则 限制数据作用域 使用数据副本 线程应尽可能独立 Java 5以前的并发编程 Java 5的并发编程 原子类 显 阅读全文

posted @ 2016-07-14 09:47 肥宅兜 阅读(1139) 评论(0) 推荐(0)

Java多线程2:Thread中的实例方法
摘要:Thread类中的方法调用方式: 学习Thread类中的方法是学习多线程的第一步。在学习多线程之前特别提出一点,调用Thread中的方法的时候,在线程类中,有两种方式,一定要理解这两种方式的区别: 1、this.XXX() 这种调用方式表示的线程是线程实例本身 2、Thread.currentThr 阅读全文

posted @ 2016-07-13 15:00 肥宅兜 阅读(515) 评论(0) 推荐(0)

Java多线程1:进程与线程概述
摘要:进程和线程 谈到多线程,就得先讲进程和线程的概念。 进程 进程可以理解为受操作系统管理的基本运行单元。360浏览器是一个进程、WPS也是一个进程,正在操作系统中运行的".exe"都可以理解为一个进程 线程 进程中独立运行的子任务就是一个线程。像QQ.exe运行的时候就有很多线程子任务在运行,比如聊天 阅读全文

posted @ 2016-07-13 13:59 肥宅兜 阅读(338) 评论(0) 推荐(0)