#阿里巴巴JAVA开发手册

16、Java并发性和多线程-死锁

以下内容转自http://ifeve.com/deadlock/:死锁是两个或更多线程阻塞着等待其它处于死锁状态的线程所持有的锁。死锁通常发生在多个线程同时但以不同的顺序请求同一组锁的时候。例如,如果线程1锁住了A,然后尝试对B进行加锁,同时线程2已经锁住了B,接着尝试对A进行加锁,这时死锁就发生了。线程1永远得不到B...
代码星球 ·2021-02-19

13、Java并发性和多线程-Java Volatile关键字

以下内容转自http://tutorials.jenkov.com/java-concurrency/volatile.html(使用谷歌翻译):Java volatile关键字用于将Java变量标记为“存储在主存储器”中。更准确地说,这意味着,每个读取volatile变量将从计算机的主存储器中读取,而不是从...

6、Java并发性和多线程-并发性与并行性

以下内容转自http://tutorials.jenkov.com/java-concurrency/concurrency-vs-parallelism.html(使用谷歌翻译):术语并发和并行性通常用于多线程程序。但是,并发和并行性究竟是什么意思呢,它们是相同的术语还是什么?简短的答案是“不”。它们不是相同的术语,...
代码星球 ·2021-02-19

5、Java并发性和多线程-相同线程

以下内容转自http://tutorials.jenkov.com/java-concurrency/same-threading.html(使用谷歌翻译):相同线程(同一线程)是一种并发模型,其中单线程系统扩展到N个单线程系统。结果是并行运行的N个单线程系统。同一个线程系统不是一个纯粹的单线程系统,因为它包含多个线程...
代码星球 ·2021-02-19

14、Java并发性和多线程-Java ThreadLocal

以下内容转自http://ifeve.com/java-theadlocal/:Java中的ThreadLocal类可以让你创建的变量只被同一个线程进行读和写操作。因此,尽管有两个线程同时执行一段相同的代码,而且这段代码又有一个指向同一个ThreadLocal变量的引用,但是这两个线程依然不能看到彼此的ThreadLo...

15、Java并发性和多线程-线程通讯

以下内容转自http://ifeve.com/thread-signaling/:线程通信的目标是使线程间能够互相发送信号。另一方面,线程通信使线程能够等待其他线程的信号。例如,线程B可以等待线程A的一个信号,这个信号会通知线程B数据已经准备好了。1、通过共享对象通信线程间发送信号的一个简单方式是在共享对象的变量里设置...
代码星球 ·2021-02-19

12、Java并发性和多线程-Java同步块

以下内容转自http://ifeve.com/synchronized-blocks/:Java同步块(synchronizedblock)用来标记方法或者代码块是同步的。Java同步块用来避免竞争。本文介绍以下内容:Java同步关键字(synchronzied)实例方法同步静态方法同步实例方法中同步块静态方法中同步块...

11、Java并发性和多线程-Java内存模型

以下内容转自http://ifeve.com/java-memory-model-6/:Java内存模型规范了Java虚拟机与计算机内存是如何协同工作的。Java虚拟机是一个完整的计算机的一个模型,因此这个模型自然也包含一个内存模型——又称为Java内存模型。如果你想设计表现良好的并发程序,理解Java内存模型是非常重...

Java中原始数据类型存放位置理解

原始数据类型的变量存放在栈还是堆,应该由上下文去决定。如下所示的局部方法中,定义了本地变量a,且为原始数据类型,所以存放在栈中。publicvoidfunc(){inta=3;}再如下所示类中,定义了局部变量a,且为原始数据类型,而类被创建为对象后,为引用类型,那么这个对象存放在堆中,同时局部变量a也会随这个对象存放在...

10、Java并发性和多线程-线程安全与不可变性

以下内容转自http://ifeve.com/thread-safety-and-immutability/:当多个线程同时访问同一个资源,并且其中的一个或者多个线程对这个资源进行了写操作,才会产生竞态条件。多个线程同时读同一个资源不会产生竞态条件。我们可以通过创建不可变的共享对象来保证对象在线程间共享时不会被修改,从...

9、Java并发性和多线程-线程安全与共享资源

以下内容转自http://ifeve.com/thread-safety/:允许被多个线程同时执行的代码称作线程安全的代码。线程安全的代码不包含竞态条件。当多个线程同时更新共享资源时会引发竞态条件。因此,了解Java线程执行时共享了什么资源很重要。局部变量局部变量存储在线程自己的栈中。也就是说,局部变量永远也不会被多个...

8、Java并发性和多线程-静态条件与临界区

以下内容转自http://ifeve.com/race-conditions-and-critical-sections/:在同一程序中运行多个线程本身不会导致问题,问题在于多个线程访问了相同的资源。如,同一内存区(变量,数组,或对象)、系统(数据库,webservices等)或文件。实际上,这些问题只有在一或多个线程...

7、Java并发性和多线程-如何创建并运行线程

以下内容转自http://ifeve.com/creating-and-starting-java-threads/:Java线程类也是一个object类,它的实例都继承自java.lang.Thread或其子类。 可以用如下方式用java中创建一个线程:Treadthread=newThread();执行该...

4、Java并发性和多线程-并发编程模型

以下内容转自http://ifeve.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B%E6%A8%A1%E5%9E%8B/:并发系统可以采用多种并发编程模型来实现。并发模型指定了系统中的线程如何通过协作来完成分配给它们的作业。不同的并发模型采用不同的方式拆分作业,同时线程间的协作和交互...

3、Java并发性和多线程-多线程的代价

以下内容转自http://ifeve.com/costs-of-multithreading/:从一个单线程的应用到一个多线程的应用并不仅仅带来好处,它也会有一些代价。不要仅仅为了使用多线程而使用多线程。而应该明确在使用多线程时能多来的好处比所付出的代价大的时候,才使用多线程。如果存在疑问,应该尝试测量一下应用程序的性...
代码星球 ·2021-02-19
首页上一页...4748495051...下一页尾页