Contents

  1. .
  2. ./ConcurrentThreads.java
  3. ./FirstThread.java
  4. ./index.html
  5. ./JabberTest.java
  6. ./SharedAddressSpace.java
  7. ./YieldJoinDemo.java

. 1/7

[
top][prev][next]


./ConcurrentThreads.java 2/7

[
top][prev][next]
/**
 * Example that creates several concurrently
 * executing threads in Java.
 */
public class ConcurrentThreads {

    public static void main(String[] args) {
        
        System.out.println("Main starting...");
        
        Thread t1 = new CThread(1);
        Thread t2 = new CThread(2);
        
        t1.start();
        t2.start();
        
        for (int i=0; i<1000; i++) {
            System.out.println("Main running");
        }
        
        System.out.println("Main ending...");
    }
}

class CThread extends Thread {
    private int id;
    
    public CThread(int id) {
        this.id = id;
    }
    
    public void run() {
        for (int i=0; i<1000; i++) {
            System.out.println("Thread " + id + " running...");
        }
    }
}

./FirstThread.java 3/7

[
top][prev][next]
/**
 * Simple example of creating a thread in Java.
 */
public class FirstThread {

    public static void main(String[] args) {
        System.out.println("Main thread running...");
        Thread t1 = new MyThread(1);
        t1.start();
        System.out.println("Main thread finished...");
    }
}

class MyThread extends Thread {
    
    private int id;
    
    public MyThread(int id) {
        this.id = id;
    }
    
    public void run() {
        System.out.println("Thread " + id + " running...");
    }
}

./index.html 4/7

[
top][prev][next]
<html>
<head><title>Examples for /home/faculty/sprenkle/public_html/cs330/examples/13-threads</title>
<link rel="stylesheet" type="text/css" href="http://www.cs.wlu.edu/~sprenkle/cs330/assignments/assign.css" />
</head>
<body>
<h1>Examples for /home/faculty/sprenkle/public_html/cs330/examples/13-threads</h1>
<ul>
<li><a href=".//code.html">All IN ONE FILE (pretty syntax)</a>
<li><a href=".//ConcurrentThreads.java">ConcurrentThreads.java</a></li>
<li><a href=".//FirstThread.java">FirstThread.java</a></li>
<li><a href=".//JabberTest.java">JabberTest.java</a></li>
<li><a href=".//SharedAddressSpace.java">SharedAddressSpace.java</a></li>
<li><a href=".//YieldJoinDemo.java">YieldJoinDemo.java</a></li>
</ul>
</body>

./JabberTest.java 5/7

[
top][prev][next]
/**
 * From http://www.cs.usfca.edu/~parrt/course/601/lectures/threads.html
 */

class Jabber implements Runnable {
 	String str;
	public Jabber(String s){ str = s; }
 	public void run() {
		while (true) {
			System.out.print(str);
			System.out.println();
		}
  	}
}

public class JabberTest {
	public static void main(String[] args) {
		Jabber j = new Jabber("1");
		Jabber k = new Jabber("2");
		Thread t = new Thread(j);
		Thread u = new Thread(k);
		t.start();
		u.start();
	}
}


./SharedAddressSpace.java 6/7

[
top][prev][next]
/**
 * Demonstration of threads shared address space.
 */
public class SharedAddressSpace {

    public static void main(String[] args) {
        int[] vals = {-1, -1, -1};
        
        Thread t0 = new SASThread(0,vals);
        Thread t1 = new SASThread(1,vals);
        Thread t2 = new SASThread(2,vals);
        
        t0.start();
        t1.start();
        t2.start();
        
        try {
            t0.join();
            t1.join();
            t2.join();
        }
        catch (InterruptedException e) {
        }
        
        for( int i=0; i < vals.length; i++ ) {
            System.out.println("vals[" + i + "] = " + vals[i]);
        }
    } 
}

class SASThread extends Thread {
    private int id;
    private int[] array;
    
    public SASThread(int id, int[] array) {
        this.id = id;
        this.array = array;
    }
    
    public void run() {
      	array[id] = id;
    }
}

./YieldJoinDemo.java 7/7

[
top][prev][next]
/**
 * Demonstration of the use of yield and join
 * in Java.
 */
public class YieldJoinDemo {

    public static void main(String[] args) {
        
        System.out.println("Main starting...");
        
        Thread t1 = new YJDThread(1);
        Thread t2 = new YJDThread(2);
        
        t1.start();
        t2.start();
        
        System.out.println("Main waiting...");
        
        try {
            t1.join();
            t2.join();
        }
        catch (InterruptedException e) {
        }
        
        System.out.println("Main ending...");
    }
}

class YJDThread extends Thread {
    private int id;
    
    public YJDThread(int id) {
        this.id = id;
    }
    
    public void run() {
        for (int i=0; i<100; i++) {
            System.out.println("Thread " + id + " running...");
            Thread.yield();
        }
    }
}

Generated by GNU Enscript 1.6.6.