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

JAVA线程之五:线程的同步

      如果程序是单线程,执行起来不必担心此线程会被其他线程打扰,就像在现实中,同一时间只完成一件事情,可以不用担心这件事情会被其他事情打扰。但是如果程序中同时使用多线程,就好比现实中“两个人同时进入一扇门”,此时就需要控制,否则容易阻塞。为了避免多线程共享资源发生冲突的情况,只要在线程使用资源时给该资源上一把锁就可以了,访问资源的第一个线程为资源上锁,其他线程若想使用这个资源必须等到锁解除为止,锁解除的同时另一个线程使用该资源并为这个资源上锁。
      为了处理这种共享资源竞争,可以使用同步机制。所谓同步机制指的是两个线程同时作用在一个对象时,应该保持对象数据的统一性和整体性。Java提供synchronized关键字,为防止资源冲突提供了内置支持。共享资源一般是文件、输入/输出端口,或是打印机。Java中同步有两种形式,分别介绍如下。
一,同步方法
      同步方法将访问这个资源的方法都标记为synchronized,这样在需要调用这个方法的线程执行完成之前,其他调用标志为synchronized()方法的线程都会被阻塞。可以使用如下代码声明一个synchronized()方法。
synchronized void sum(){...}            //定义一个取和的同步方法
synchronized void max(){...}            //定义一个取最大值的同步方法
上述代码中定义了两个同步方法,其中第一个方法为取和操作,第二个方法取最大值操作,当两个方法同时作用于内存中同一块地址时,如果此对象调用了sum()方法,此时max()方法只能等到sum()方法调用完毕并且释放锁之后才能被调用。
      看如下实例:src\com\wsy\TestSynchronizedThread.java完整代码:
package com.wsy;
public class TestSynchronizedThread extends Thread
{
      private char cha;
      public TestSynchronizedThread(char cha)
     {
            this.cha=cha;
      }
      synchronized void printch()
    &


相关文档:

Java设计模式之:Iterator链表模式

先来了解一下链表模式的原理:
首先写一个JavaBean,内容是要添加的元素和该元素的节点。
public class NodeBean implements Serializable
{
   
    private Object data; //元素本身
    private NodeBean next; //下一个节点
   
  &n ......

Java ArrayList使用总结(一)

   最近一直在使用Java,感觉它的越界检查非常有效。这一点对于初学者来说是非常重要的(提高程序的严谨性),对于有经验的程序员来说也很有帮助。Java中有一个很有效的ArrayList类(读者可以结合Java API
来学习它),。它和一般的数组不一样,不需要提前分配固定的空间(使用比较灵活),每次使用的时候可以添加 ......

Java的AWT

AWT是Java中支持图形化用户界面GUI设计的一个工具集。AWT的API是独立于平台的,但设计出来的界面在各种平台的风格不同,利用API中各种类在特定平台下的对等组件peers提供具体平台下的实现。
欲建立一个GUI首先确定所用的组件及其布局,然后实现其事件的响应。组件的类型有多种,如常用的Button、CheckBox等,均为Component ......

java中的URLEncoder和URLDecoder类

java中的URLEncoder和URLDecoder类
    URLEncoder类包含将字符串转换为application/x-www-form-urlencoded MIME 格式的静态方法。
为了解决web设计中不同操作系统间的差异性,我们在URL中使用的字符就必须是一个ASCII字符集的固定字集中的元素,具体如下:
1.大写字母A-Z
2.小写字母a- ......

java中String类的构造函数

String类中的构造函数
String(); 构造一个空字符串对象
String(byte[] bytes); 通过byte数组构造字符串对象
String(byte[] bytes,int offset,int length);通过byte数组,从offset开始,总共length长的字节构造字符串对象
String(char[] value); 通过char数组构造字符串对象
String(byte[] char,int offset,int length) ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号