![]()
|
|||
Приклад 5. Запуск повільної кількості потоківПриклад 5. Запуск повільної кількості потоків import javax. swing. *; import java. awt. event. *; import java. awt. *; import com. bruceeckel. swing. *;
public class Counter4 extends JApplet { private int size = 12; private JButton start = new JButton (“Почати”); private boolean started = false; private Ticker[] s; private boolean isApplet = true; class Ticker extends Thread { private JButton b = new JButton (“Переключити”); private JTextField t = new JTextField(10); private int count = 0; private boolean runFlag = true; public Ticker() { b. addActionListener(new ToggleL()); JPanel p = new JPanel(); p. add(t); p. add(b); // getContentPane(). add(p); } class ToggleL implements ActionListener { public void actionPerformed(ActionEvent e) { runFlag =! runFlag; } } public void run() { while (true) { if(runFlag) t. setText(Integer. toString(count++)); try { sleep(100); } catch(InterruptedException e) { System. err. println(“ Перервано”); } } } } class StartL implements ActionListener { public void actionPerformed(ActionEvent e) { if(! started) { started = true; for (int i = 0; i < s. length; i++) s[i]. start(); } } } public void init() { Container cp = getContentPane(); cp. setLayout (new FlowLayout()); // if (isApplet) { String sz = getParameter(“size”); if (sz! = null) size = Integer. parseInt(sz); } s = new Ticker[size]; for (int i = 0; i < s. length; i++) s[i] = new Ticker(); start. addActionLisener(new StartL()); cp. add(start); } public static void main(Sting[] args) { Counter4 applet = new Counter4(); applet. isApplet = false; if(args. length! = 0) applet. size = Integer. parseInt(args[0]); Console. run(applet, 200, applet. size*50 ); } }
Приклад 6. Потоки –демони
import java. io. *;
class Daemon extends Thread { private static final int SIZE = 10; private Thread[] t = new Thread[SIZE]; public Daemon (true); setDaemon(true); start(); public void run() { for (int i = 0; i < SIZE; i++) t[i] = new DaemonSpawn(i); for (int i = 0; i < SIZE; i++) System. out. println(“t[” + i + “]. isDaemon() = “ + t[i]. isDaemon()); while (true) yield(); } } class DaemonSpawn extends Thread { public DaemonSpawn (int i) { System. out. println(“Потік DaemonSpawn “ + i + “ запущений”); start(); } public void run() { while (true) yield(); } } public class Daemons { public static void main(Sting[] args) throws IOExctption { Thread d = new Daemon(); System. out. println(“d. isDaemon() = “ + d. isDaemon()); System. out. println(“Натисні будь-яку клавишу “); System. in. read(); } }
|
|||
|