Snowberg

 

2011年11月28日

Java多线程初步--总结

摘要: 1、线程简介os当中的多线程分为用户级线程和内核级线程。①用户级线程,由对应的进程创建,一个进程可以创建一个或多个线程,当进程获得处理机时,这些线程并发的执行,将这个时间片分配为更小的时间片,进而并发的执行。用户级线程对于系统内核是透明的,内核只能看到进程的执行,而不知道进程进一步分为了多个线程。也正是如此用户级线程无法享受到多核的好处。如果内核是单线程的,那么任何一个用户级线程若执行阻塞系统调用就会引起整个进程阻塞,即使还有其他线程可以在应用程序内运行。②内核级线程,内核级线程对于系统内核是可见的,有系统内核调度各个线程,内核级线程可以享受到多核的好处。但是创建比较耗费资源。、在java当中 阅读全文

posted @ 2011-11-28 22:02 Snowberg 阅读(209) 评论(0) 推荐(0) 编辑

学习java必去之处

摘要: http://download.oracle.com/javase/6/docs/组织得很好,非常详细,还有例子。在线看可能有点慢,下载下来更方便。Java Language Specificationhttp://java.sun.com/docs/books/jls/third_edition/html/j3TOC.htmlJava语言规范。包括各个版本的改进都写得很清楚。本来以为会很晦涩难懂,实际上还好。Java VM Specificationhttp://java.sun.com/docs/books/jvms/second_edition/html/VMSpecTOC.doc.ht 阅读全文

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

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) 编辑

导航