易截截图软件、单文件、免安装、纯绿色、仅160KB

浅谈Java多线程的同步问题

    多线程的同步依靠的是对象锁机制,synchronized关键字的背后就是利用了封锁来实现对共享资源的互斥访问。
下面以一个简单的实例来进行对比分析。实例要完成的工作非常简单,就是创建10个线程,每个线程都打印从0到99这100个数字,我们希望线程之间不会出现交叉乱序打印,而是顺序地打印。
先来看第一段代码,这里我们在run()方法中加入了synchronized关键字,希望能对run方法进行互斥访问,但结果并不如我们希望那样,这是因为这里synchronized锁住的是this对象,即当前运行线程对象本身。代码中创建了10个线程,而每个线程都持有this对象的对象锁,这不能实现线程的同步。代码package com.vista;
class MyThread implements java.lang.Runnable
{
    private int threadId;
    public MyThread(int id)
    {
        this.threadId = id;
    }
    @Override
    public synchronized void run() 
    {
        for (int i = 0; i < 100; ++i)
        {
            System.out.println("Thread ID: " + this.threadId + " : " + i);
        }
    }
}
public class ThreadDemo
{
    /**
     * @param args
     * @throws InterruptedException 
     */
    public static void main(String[] args) throws InterruptedException
    {
        for (int i = 0; i < 10; ++i)
 &nbs


相关文档:

学习Java必看 JAVA代码编写的30条建议

 
学习Java必看 - JAVA代码编写的30条建议
(1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如:
 ThisIsAClassName
 thisIsMethodOrFieldName
 若在定义中出现了常数初始化 ......

Java中无法捕获C程序printf输出的问题

在测试
ConsoleRunner
的过程中发现一个有意思的现象,一段很简单的
C
程序:
 
#include <stdio.h>
#include <windows.h>
 
int main() {
   
int i = 0;
   
for (;;) {
       
printf("%d\n", i++); ......

java集合框架图及介绍


java集合框架图及介绍
简化图:
Java平台提供了一个全新的集合框架。“集合框架”主要由一组用来操作对象的接口组成。不同接口描述一组不同数据类型。
Java 2集合框架图
集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。
抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。 ......

如何自学java迅速成为java高手

很多网友咨询学习Java有没有什么捷径,我说“无他,唯手熟尔”。但是尚学堂愿意将一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛!
要想学好Java,首先要知道Java的大致分类。我们知道,自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE, ......

招聘Java开发工程师

 
工作地点
:杭州
职位
      :Java开发工程师(阿里巴巴集团B2B公司网站技术部)
有意者请把简历发给madding.lip@alibaba-inc.com!
1)合适者我们会先进行电话面试
2)通过者再当面约见,形式通常为多对一
有意者请发邮件给我,注明电话等基本联系信息。 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号