aus einem Thread eine HashMap ziehen

Caruso_Nix

Mitglied
Hallo,

ich habe eine Thread laufen mit einer gefüllten HashMap.

public class Uebersicht extends Thread
{
private static HashMap hm = new HashMap();
public static HashMap getHashMap()
{
return hm;
}
...

public void run()
{
...
System.out.println(getHashMap()); --> hier gefüllt.
}
}

Nun möchte ich aus einer anderen Klasse genau auf diese HM zugreifen. Aber wenn ich Ubersicht.getHashMap() verwende, bekomme ich eine leere HM übergeben.

public class Test
{
public static void main(String[] args) {
System.out.print(Dispatcher.getHashMap()); --> hier leer
}
}

Wie schaffe ich denn das?

caruso.
 
Hallo!
#
Schau mal hier:
Code:
package de.tutorials;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

public class T extends Thread {
	private final static Map map = new HashMap();

	public T() {
		setPriority(MIN_PRIORITY);
	}

	public void run() {
		int i = 0;
		while (true) {
			String time = String.valueOf(System.currentTimeMillis());
			map.put(new Integer(i++), time);
			System.out.println(time);
			try {
				sleep(150L);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}

	public static Map getMap() {
		return Collections.unmodifiableMap(map);
	}
}

und hier:
Code:
package de.tutorials;

public class Test01 {
	public static void main(String[] args) {
		T t = new T();
		Thread t2 = new Thread() {

			{
				setPriority(MIN_PRIORITY);
			}

			public void run() {
				while (true) {
					System.out.println(T.getMap());
					try {
						sleep(200L);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			}
		};
		
		t.start();
		t2.start();
		
	}
}

Gruß Tom
 
Zurück