Snowberg

 
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 17 下一页

2011年11月28日

Java中的synchronized和volatile

摘要: 刚开始看Netty,第一个文件Bootstrap,就发现使用了很多volatile关键字。赶紧补充一下Java线程同步机制的知识。有错误的地方,请大家指正。说到Java的线程同步问题肯定要说到两个关键字synchronized和volatile。说到这两个关键字,又要说道JVM的内存模型。JVM里内存分为main memory和working memory。Main memory是所有线程共享的,working memory则是线程的工作内存,它保存有部分main memory变量的拷贝,对这些变量的更新直接发生在working memory里,并在适当的时候写回main memory(很遗憾 阅读全文

posted @ 2011-11-28 20:04 Snowberg 阅读(355) 评论(0) 推荐(0) 编辑

synchronized与volatile异同

摘要: synchronized与volatile异同 恐怕比较一下volatile和synchronized的不同是最容易解释清楚的。volatile是变量修饰符,而synchronized则作用于一段代码或方法;看如下三句get代码:int i1; int geti1() {return i1;}volatile int i2; int geti2() {return i2;}int i3; synchronized int geti3() {return i3;} geti1()得到存储在当前线程中i1的数值。多个线程有多个i1变量拷贝,而且这些i1之间可以互不相同。换句话说,另一个线程可能.. 阅读全文

posted @ 2011-11-28 19:51 Snowberg 阅读(723) 评论(0) 推荐(0) 编辑

java中run()和start()的区别

摘要: class NewThread implements Runnable { Thread t; public NewThread() { t = new Thread(this,"Demo thread"); System.out.println("Child thread : " + t); t.run(); } public void run(){ try{ for( int i = 5; i > 0; i --){ System.out.println("Child thread :" + i); Thread.sleep 阅读全文

posted @ 2011-11-28 10:12 Snowberg 阅读(275) 评论(0) 推荐(0) 编辑

java并发实现用户级线程

摘要: 操作系统当中线程机制分为内核级线程和用户级线程,在学习到java并发机制时小弟实在不知道,java实现的是那种线程机制,拜读《Thinking in Java》P652最后一段,文中作者这这样写道,”Java采取了更加传统的方式,在顺序型语言的基础上提供对线程的支持。与在多任务操作系统中分叉外部进程不同,线程机制是在由执行程序表示的单一进程中创建任务。这种方式产生的好处是操作系统的透明性,这对于java而言,是一个重要的设计目标。“红色的字体正好符合用户级线程的特点,在以后的文章当中,更多的提到的是用户级线程特点。java的并发机制实现的是用户级线程。 阅读全文

posted @ 2011-11-28 09:29 Snowberg 阅读(500) 评论(0) 推荐(0) 编辑

2011年11月26日

用户级线程与内核级线程

摘要: 在多线程操作系统中,各个系统的实现方式并不相同。在有的系统中实现了用户级线程,有的系统中实现了内核级线程1.内核级线程:(1)线程的创建、撤销和切换等,都需要内核直接实现,即内核了解每一个作为可调度实体的线程。(2)这些线程可以在全系统内进行资源的竞争。(3)内核空间内为每一个内核支持线程设置了一个线程控制块(TCB),内核根据该控制块,感知线程的存在,并进行控制。在一定程度上类似于进程,只是创建、调度的开销要比进程小。有的统计是1:102.用户级线程:(1)用户级线程仅存在于用户空间。——>对比内核(3)(2)内核并不能看到用户线程。——>重要的区别(3)内核资源的分配仍然是按照 阅读全文

posted @ 2011-11-26 11:00 Snowberg 阅读(2225) 评论(0) 推荐(0) 编辑

2011年11月25日

Thinking in Java 源代码

摘要: Thinking in Java 源代码,最近在学习这个东西,大家分享一下。http://download.csdn.net/detail/yangzl2008/3841606 阅读全文

posted @ 2011-11-25 15:01 Snowberg 阅读(195) 评论(0) 推荐(0) 编辑

2011年11月22日

实战篇:设计自己的Annotation

摘要: Annotation在java的世界正铺天盖地展开,有空写这一篇简单的annotations的文章,算是关于Annotation入门的文章吧,希望能各位们能抛砖,共同学习...... 不讲废话了,实践才是硬道理.第一部分:了解一下java1.5起默认的三个annotation类型: 一个是@Override:只能用在方法之上的,用来告诉别人这一个方法是改写父类的。 一个是@Deprecated:建议别人不要使用旧的API的时候用的,编译的时候会用产生警告信息,可以设定在程序里的所有的元素上. 一个是@SuppressWarnings:这一个类型可以来暂时把一些警告信息消息关闭. 如果不清楚上面 阅读全文

posted @ 2011-11-22 21:01 Snowberg 阅读(160) 评论(0) 推荐(0) 编辑

java调用cmd窗口

摘要: 1、写一个批处理文件,文件名为:run.dat内容为:************************************************%1%pause************************************************2、Runtime.getRuntime().exec("cmd.exe /k start d:\\files\\run.bat d:\\files\\"+ filename.exe);在java中调用这个命令即可。这样就可以显示cmd窗口而不是一闪而过。 阅读全文

posted @ 2011-11-22 19:03 Snowberg 阅读(585) 评论(0) 推荐(0) 编辑

2011年11月21日

java解读NIO Socket非阻塞模式(转载)

摘要: jdk供的无阻塞I/O(NIO)有效解决了多线程服务器存在的线程开销问题,但在使用上略显得复杂一些。在NIO中使用多线程,主要目的已不是为了应对每个客户端请求而分配独立的服务线程,而是通过多线程充分使用用多个CPU的处理能力和处理中的等待时间,达到提高服务能力的目的。 这段时间在研究NIO,写篇博客来记住学过的东西。还是从最简单的Hello World开始,client多线程请求server端,server接收client的名字,并返回Hello! +名字的字符格式给client。当然实际应用并不这么简单,实际可能是访问文件或者数据库获取信息返回给client。非阻塞的NIO有何神秘之处?代. 阅读全文

posted @ 2011-11-21 22:14 Snowberg 阅读(330) 评论(0) 推荐(0) 编辑

JAVA NIO 简介

摘要: 来自:http://www.iteye.com/topic/8344471.基本概念IO是主存和外部设备(硬盘、终端和网络等)拷贝数据的过程。IO是操作系统的底层功能实现,底层通过I/O指令进行完成。所有语言运行时系统提供执行I/O较高级别的工具。(c的printf scanf,java的面向对象封装)2.Java标准io回顾Java标准IO类库是io面向对象的一种抽象。基于本地方法的底层实现,我们无须关注底层实现。InputStream\OutputStream(字节流):一次传送一个字节。Reader\Writer(字符流):一次一个字符。3.nio简介nio是java New IO的简称 阅读全文

posted @ 2011-11-21 22:04 Snowberg 阅读(255) 评论(0) 推荐(0) 编辑

上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 17 下一页

导航