- 浏览: 35226 次
- 性别:
- 来自: 重庆
最新评论
-
nrxqq:
Java做并发有啥用? 有并发都用c/c++
Java 并发(一)
文章列表
今天在学习ArrayBlockQueue源码的时候有一个小疑惑 如代码:
/** The queued items */
final Object[] items; //实例变量
/**
* Extracts element at current take position, advances, and signals.
* Call only when holding lock.
*/
private E extract() {
final Object[] items = this ...
俗话说“工欲善其身,必先利其器”。要想编写好的多线程并发系统,就必须要有一些好的封装类来作为我们的sychironiziton aid。java.util.concurrent包下面就有许多封装好了的类用来帮助我们写好多线程并发系统的新工具。
一 ...
一,并发理论的简介
1.解释java线程模型
java线程模型建立在两个基本的概念之上:
共享的,默认可见的可变状态:所有线程都可以很容易地共享同一进程中的对象,能够引用的线程都可以修改这些对象
抢占式线程调度:线程调度程序几乎任何时候都能在内核上调入或调出线程(否则无限循环的方法会一种占用CPU)
线程的调度可能会导致方法“半途而费”,并出现状态不一致的对象。某一线程对数据进行修时,会让其他线程无法见到本来应该可见的修改。为了缓解这些风险,Java提出了最后一点要求:
为了保护脆弱的数据,对象可以被锁住
2.设计理念
Doug Lea在创造他的里程碑 ...
一,Log4j简介
日志的三个目的:
1. 监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作 2.跟踪代码运 ...
本篇博客内容总结于网上的两篇博客以及帮助文档:
java常用集合总结,java中常用集合类
一,List类和Set类
1)、List接口及其实现类 List接口继承于Collection接口。 List接口及其实现类是容量可变的列表,可按索引访问集合中的元素。 特点:集合中的元素有序、可重复;
在Centos6.5上面装好javaweb的环境后。(如果你不知道怎么安装JavaWeb环境请参考我的博客)
启动tomcat6:service tomcat6 start;
启动成功后在浏览器中输入:localhost:8080 能访问tomcat的主页。
但是输入 localhost:8080/linuxTest(linuxTest为项目名) 就报404的错误,无论采用将项目文件夹直接放在webapps文件中,还是在 .conf/server.xml 增加<Context />节点 都不行。
原因:是文件权限的问题
解决方案:将项目目录所在的录的所有父目 ...
并发-大多程序都无法避免的,因为我们所做的大部分事情都需要并发,而且并发也是能否从多核的处理器中获得好的性能的一个条件。
一,同步访问共享的可变数据
同步并不是单单指线程之间的互斥。如果没有同步,一个线程的变化就不能被其他线程看到。同步不仅可以阻止一个线程看到对象处于不一致的状态之中,它还可以保证进入同步方法或者同步代码块的每个线程,都看到由同一个锁保护的之前的所以修改效果。
Java语言规范保证读或写一个变量是原子的(atomic)long和double除外。但是它并不保证一个线程写入的值对于另一个线程将是可见的(解释看下面的代码)。
import ...
本篇博客转载自什么是内核态和用户态
在单内核模式系统中,操作系统提供服务的流程为(即用户应用程序调用系统内核功能):应用主程序使用指定的参数执行系统调用指令(intel x80),使CPU从用户态(User Mode)切换到核心态(Kernel Mode), 然后系统根据参数值调用特定的系统调用服务程序,而这些服务程序则根据需要调用底层的支持函数以完成特定的功能。在完成了应用程序要求的服务后,操作系统 又从核心态切换回用户态,回到应用程序中继续执行后续指令。因此,单内核模式的内核也可粗略的分为三层:调用服务的主程序层、执行系统调用的服务层和支持 系统调用的底层函数 ...
转自 Linux下which、whereis、locate、find 命令的区别
我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索。这些是从网上找到的资料,因为有时很长时间不会用到,当要用的时候经常弄混了,所以放到这里方便使用。 which 查看可执行文件的位置 whereis 查看文件的位置 locate 配 合数据库查看文件位置 find 实际搜寻硬盘查询文件名称 1、which 语法: [root@redhat ~]# which 可执行文件名称 例如: [root@redhat ~]# which p ...
这里安装jdk,tomcat6,mysql 都是从163源上直接yum安装的所以在这之前必须保证你的Centos能连上Internet.
第一步,安装JDK
[root@localhost Desktop]# yum search jdk[root@localhost Desktop]# yum -y install java-1.7.0-openjdk*安装成功后可以
[root@localhost /]# find -name java 看看java文件都在什么地方结果如下:
第二步:安装tomcat6
安装tomcat6
在安装完CentOS6.5后一般需要修改yum源,才能够在安装更新rpm包时获得比较理想的速度。国内比较快的有163源、sohu源。这里以163源为例子。
1. cd /etc/yum.repos.d
2. mv CentOS-Base.repo CentOS-Base.repo.backup
3. wget http://mirrors.163.com/.help/CentOS6-Base-163.repo --下载repo文件
4. mv CentOS6-Base-163.repo CentOS-Base.repo
5.yum clean all --清除缓存 ...
3.1处理机调度的层次和调度算法的目标
3.11处理机调度的层次
1.高级调度(High level Scheduling)
又称长调度或作业调度,它的调度对象时作业,其主要功能室根据某种算法,决定将外存上处于后备队 ...
装饰者模式一 问题的引入 Starbuzz是一家咖啡连锁店,他们准备更新订单系统,这是他们原先的设计,他们准备更新订单系统,以和服他们饮料的供应需求。
解决方案 A.使用继承
每个cost()方法计算出每种搭配的价格。 评价:很明显这种方法不可取。
B从Beverage基类下手,加上实例变量代表是否加上某种配料(牛奶,豆浆,mocha).
2.1程序的执行
程序的执行分为顺序执行和并发执行。
A.程序的顺序执行
定义:一个应用程序由若干个程序段组成,每一个程序段完成特定的功能,它们执行时,都需要按照某种先后次序顺序执行,仅当前一段程序执行完后,才运行后一段程序段。
特点:1)顺序性
2)封闭性:指程序在封闭的环境下运行,即程序独占全机资源,资源的状态只有本程序才能改变它,程序一旦开始执行,其执行结果不受外界因素影响
3)可再现性:只要程序执行时的环境和初始条件相同,当程序重复执行时,不论它是从头到尾不停顿地执行,还是“停停走 ...