mtsimplesync.java

来自「This is a resource based on j2me embedde」· Java 代码 · 共 114 行

JAVA
114
字号
/* * @(#)MTSimpleSync.java	1.4 06/10/10 * * Copyright  1990-2008 Sun Microsystems, Inc. All Rights Reserved.   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER   *    * This program is free software; you can redistribute it and/or   * modify it under the terms of the GNU General Public License version   * 2 only, as published by the Free Software Foundation.    *    * This program is distributed in the hope that it will be useful, but   * WITHOUT ANY WARRANTY; without even the implied warranty of   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU   * General Public License version 2 for more details (a copy is   * included at /legal/license.txt).    *    * You should have received a copy of the GNU General Public License   * version 2 along with this work; if not, write to the Free Software   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA   * 02110-1301 USA    *    * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa   * Clara, CA 95054 or visit www.sun.com if you need additional   * information or have any questions.  * * Simple Test program to make sure unlocking of contended Simple * Sync locks is working ok. It is intended to be used to test * ports that use CVM_FASTLOCK_TYPE == CVM_FASTLOCK_ATOMICOPS. * * There is no output for this test, and it will run forever. In order * to monitor progress, you should enable the printf at the start of * CVMsimpleSyncUnlock. You should see it called frequently. Note * that it is only called if CVM_FASTLOCK_TYPE == CVM_FASTLOCK_ATOMICOPS. */import java.util.*;import java.lang.*;import java.util.*;public class MTSimpleSync implements Runnable {    public static final int NUM_THRADS = 8;    public static final int NUM_VECTORS = 23;    public static final int primes[] = {1, 3, 5, 7, 11, 13, 17, 23};    static Thread threads[] = new Thread[NUM_THRADS];    static Vector vectors[] = new Vector[NUM_VECTORS];    int threadIndex;    int vectorIncrement;    static {    }    public static void main(String[] args) {	for (int i = 0; i < NUM_THRADS; i++) {	    MTSimpleSync mtss = new MTSimpleSync(i, primes[i]);	    threads[i] = new Thread(mtss);	    threads[i].start();	}    }    public MTSimpleSync(int threadIndex, int vectorIncrement) {	this.threadIndex = threadIndex;	this.vectorIncrement = vectorIncrement;    }    public void run() {	System.out.println("Starting " + threads[threadIndex] +			   " : vectorIncrement == " + vectorIncrement);	if (vectorIncrement == 1) {	    /* Repeatedly create Vector objects */	    int i = 0;	    while (true) {		vectors[i] = new Vector();		i += vectorIncrement;		i = i % NUM_VECTORS;		if (i == 0) {		    /*		    System.out.println("Iterating " + threads[threadIndex] +			   " : vectorIncrement == " + vectorIncrement);		    */		    try {			Thread.sleep(10);		    } catch (InterruptedException e) {		    }		}	    }	} else {	    /* Make sure we are done creating the Vector objects first */	    while (vectors[NUM_VECTORS-1] == null) {		try {		    Thread.sleep(100);		} catch (InterruptedException e) {		}	    }	    /* Repeatedly call Vector.size() */	    int i = 0;	    while (true) {		int size = vectors[i].size();		i += vectorIncrement;		i = i % NUM_VECTORS;		if (i == 0) {		    /*		    System.out.println("Iterating " + threads[threadIndex] +			   " : vectorIncrement == " + vectorIncrement);		    */		}	    }	}    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?