@daichan4649に「殺伐としたプログラムしか見ていないのでいつも癒されます」と言われたのだけど、「殺伐としたプログラム」ってどんなのだろう?
こうですか?わかりません ><
lockしたらunlockしません。早い者勝ち
ソースはこれ
import java.awt.*; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import javax.swing.*; public class LockSample { private static Lock lock = new ReentrantLock(); public static void main(String args[]) { JFrame f = new JFrame("殺伐としたプログラム"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setLayout(new GridLayout(0, 1)); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); f.setBounds((screenSize.width-400)/2, (screenSize.height-300)/2, 400, 300); for(int i = 0; i < 10; ++i){ JTextField tf = new JTextField(); f.add(tf); Runner r = new Runner(); r.tf = tf; new Thread(r).start(); } f.setVisible(true); } private static class Runner implements Runnable{ JTextField tf; int speed = (int) (Math.random() * 100 + 50); @Override public void run(){ try { String tr = "亡者>"; for(int i = 0; i < 50; ++i){ tf.setText(tr); tr = " " + tr; Thread.sleep(speed); } try{ lock.lock(); //ここから先は1つしか同時に進めない for(int i = 0; i < 50; ++i){ tf.setText(tr); tr = " " + tr; Thread.sleep(50); } }finally{ //ロック開放しない! //lock.unlock(); } } catch (InterruptedException ex) { } } } }