java多线程高并发
文章平均质量分 65
末路狂奔@@@@@
快乐的坚持一个梦想,直到实现。
展开
-
java高并发编程
本文是Oracle官方的Java并发相关的教程,感谢并发编程网的翻译和投递。 (关注ITeye官微,随时随地查看最新开发资讯、技术文章。) 计算机的使用者一直以为他们的计算机可以同时做很多事情。他们认为当其他的应用程序在下载文件,管理打印队列或者缓冲音频的时候他们可以继续在文字处理程序上工作。甚至对于单个应用程序,他们任然期待它能在在同一时间做很多事情。举个例子,一个流媒体播放程序转载 2014-06-27 14:57:27 · 1136 阅读 · 0 评论 -
Java使用Fork/Join框架来并行执行任务
现代的计算机已经向多CPU方向发展,即使是普通的PC,甚至现在的智能手机、多核处理器已被广泛应用。在未来,处理器的核心数将会发展的越来越多。虽然硬件上的多核CPU已经十分成熟,但是很多应用程序并未这种多核CPU做好准备,因此并不能很好地利用多核CPU的性能优势。为了充分利用多CPU、多核CPU的性能优势,级软基软件系统应该可以充分“挖掘”每个CPU的计算能力,决不能让某个CPU处于转载 2016-08-16 11:27:16 · 2238 阅读 · 0 评论 -
java常用的带返回值的并发编程
1,需要一个线程池:concurrent包下的: ExecutorService pool = Executors.newCachedThreadPool(); 用来执行多任务线程的线程池。2, 多任务调度者,需要实现callable接口:如:class Mainhandeler implements Callable 需要实现call方法原创 2016-06-17 17:34:34 · 1676 阅读 · 0 评论 -
spring mvc 的Controller类里的方法线程安全问题
使用Spring MVC有一段时间了,之前一直使用Struts2,在struts2中action都是原型(prototype)的, 说是因为线程安全问题,对于Spring MVC中bean默认都是(singleton)单例的,那么用@Controller注解标签注入的Controller类是单例实现的?测试结果发现spring3中的controller默认是单例的,若是某个contro转载 2016-07-02 16:45:15 · 4759 阅读 · 0 评论 -
Spring并发访问的线程安全性问题
转:http://windows9834.blog.163.com/blog/static/27345004201391045539953/springmvc的controller是singleton的(非线程安全的),这也许就是他和struts2的区别吧和Struts一样,Spring的Controller默认是Singleton的,这意味着每个request过来,系统都会用原有的ins转载 2016-07-02 16:44:11 · 1635 阅读 · 0 评论 -
使用ThreadLocal解决多线程的并发问题
早在JDK 1.2的版本中就提供Java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。从线程的角度看,转载 2016-05-13 18:05:00 · 868 阅读 · 0 评论 -
Java并发编程:Callable、Future和FutureTask
在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。 而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕转载 2016-03-08 17:15:47 · 329 阅读 · 0 评论 -
java线程池的使用理解
一般,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中可以通过线程池来达到这样转载 2015-10-19 17:20:22 · 406 阅读 · 0 评论 -
java的static方法并发问题
只要你的静态方法不访问全局变量的话,就不会有并发问题访问全局变量肯定会出现并发问题,这是毫无疑问的静态方法内部的变量,都是局部变量,每次调用静态方法时都会重新分配内存空间,所以是安全的也就是是说只要你的静态方法不访问全局变量的话,就不会有并发问题转载 2015-08-23 10:48:06 · 3333 阅读 · 0 评论 -
Java多线程面试问题
多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点)Java多线程面试问题1. 进程和线程之间有什么不同?一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的转载 2015-06-04 10:37:05 · 529 阅读 · 0 评论 -
java常用线程池
package com.pk.multithread;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;/** * * 各种线程池 * @author linx原创 2015-06-02 14:59:11 · 472 阅读 · 0 评论 -
Java static 静态方法 并发(是否线程安全)
Java static 静态方法 并发(是否线程安全)1234567publicclass TestUitl { publicstatic User setName(User user,String name) {转载 2015-06-01 11:20:56 · 5820 阅读 · 0 评论 -
java 死锁例子及相关讲解
死锁 死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 导致死锁的根源在于不适当地运用“synchronized”关键词来管理线程对特定对象的访问。“synchronized”关键词的作用是,确保在某个时刻只有一个线程被允许执行特定的代码块,因此,被允许执行的线程首先必须拥有对变量或对象的排转载 2015-06-01 11:13:04 · 681 阅读 · 0 评论 -
java多线程概念
一、认识多任务、多进程、单线程、多线程要认识多线程就要从操作系统的原理说起。 以前古老的DOS操作系统(V 6.22)是单任务的,还没有线程的概念,系统在每次只能做一件事情。比如你在copy东西的时候不能rename文件名。为了提高系统的利用效率,采用批处理来批量执行任务。 现在的操作系统都是多任务操作系统,每个运行的任务就是操作系统所做的一件事情,比如你在转载 2015-06-01 11:02:36 · 601 阅读 · 0 评论 -
Java 并发工具包 java.util.concurrent 用户指南
译序本指南根据 Jakob Jenkov 最新博客翻译,请随时关注博客更新:http://tutorials.jenkov.com/java-util-concurrent/index.html。本指南已做成中英文对照阅读版的 pdf 文档,有兴趣的朋友可以去 Java并发工具包java.util.concurrent用户指南中英文对照阅读版.pdf[带书签] 进行下载。转载 2017-03-22 11:00:47 · 701 阅读 · 0 评论