Java怎麼實作多線程?
start(); }}
運作結果為:
Thread 1 = 5
Thread 2 = 5
Thread 3 = 5
Thread 4 = 5
Thread 5 = 5
Thread 1 = 4
Thread 2 = 4
Thread 3 = 4
Thread 4 = 4
Thread 1 = 3
Thread 2 = 3
Thread 5 = 4
Thread 3 = 3
Thread 4 = 3
Thread 1 = 2
Thread 2 = 2
Thread 5 = 3
Thread 3 = 2
Thread 4 = 2
Thread 1 = 1
Thread 2 = 1
Thread 5 = 2
Thread 3 = 1
Thread 4 = 1
Thread 5 = 1
從結果可見,例2能實作多線程的并行處理。
java關于多線程的操作是怎樣的?
out。println("客戶位址:" + client。getInetAddress());
} catch (IOException e1) {
System。out。println("正在等待客戶");
用戶端代碼,啟動之後便會連接配接伺服器,得到回應之後便會形成socket連接配接
Socket clientsocket = null;
try {
clientsocket = new Socket("localhost",4311);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
什麼是JAVA多線程
利用對象,可将一個程式分割成互相獨立的區域。我們通常也需要将一個程式轉換成多個獨立運作的子任務。
象這樣的每個子任務都叫作一個“線程”(Thread)。編寫程式時,可将每個線程都想象成獨立運作,而且都有自己的專用CPU。一些基礎機制實際會為我們自動分割CPU的時間。我們通常不必關心這些細節問題,是以多線程的代碼編寫是相當簡便的。
這時了解一些定義對以後的學習狠有幫助。“程序”是指一種“自包容”的運作程式,有自己的位址空間。“多任務”作業系統能同時運作多個程序(程式)——但實際是由于CPU分時機制的作用,使每個程序都能循環獲得自己的CPU時間片。但由于輪換速度非常快,使得所有程式好象是在“同時”運作一樣。“線程”是程序内部單一的一個順序控制流。是以,一個程序可能容納了多個同時執行的線程。
//: Counter1.java
// A non-responsive user interface
package c14;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class Counter1 extends Applet {
private int count = 0;
private Button
onOff = new Button("Toggle"),
start = new Button("Start");
private TextField t = new TextField(10);
private boolean runFlag = true;
public void init() {
add(t);
start.addActionListener(new StartL());
add(start);
onOff.addActionListener(new OnOffL());
add(onOff);
public void go() {
while (true) {
try {
Thread.currentThread().sleep(100);
} catch (InterruptedException e){}
if(runFlag)
t.setText(Integer.toString(count++));
class StartL implements ActionListener {
public void actionPerformed(ActionEvent e) {
go();
class OnOffL implements ActionListener {
public void actionPerformed(ActionEvent e) {
runFlag = !runFlag;
public static void main(String[] args) {
Counter1 applet = new Counter1();
Frame aFrame = new Frame("Counter1");
aFrame.addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
aFrame.add(applet, BorderLayout.CENTER);
aFrame.setSize(300,200);
applet.init();
applet.start();
aFrame.setVisible(true);
} ///:~