“ 高度なケーススタディ:マルチスレッド
マルチスレッドはJavaの基本的な概念であり、プログラムの効率を大幅に向上させることができます。以下は、マルチスレッドを示す簡単な例です:
```java
public class MultiThreadExample {
public static void main(String[] args) {
Thread thread1 = new Thread(new RunnableTask(), "Thread-1");
Thread thread2 = new Thread(new RunnableTask(), "Thread-2");
thread1.start();
thread2.start();
}
}
class RunnableTask implements Runnable {
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + " が実行中、イテレーション: " + i);
}
}
}
```
この例では、同じタスク(スレッド名とイテレーションカウントを印刷する)を実行する2つのスレッドを作成します。マルチスレッドは、アプリケーションの同時処理能力を大幅に向上させることができます。
“ 詳細な開発例:ネットワークプログラミング
ネットワークプログラミングは多くのアプリの重要な側面です。以下は、Javaを使用したシンプルなサーバー-クライアント通信システムの例です:
サーバーコード:
```java
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try (ServerSocket serverSocket = new ServerSocket(1234)) {
System.out.println("サーバーはポート1234でリスニング中");
while (true) {
Socket socket = serverSocket.accept();
new ServerThread(socket).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
class ServerThread extends Thread {
private Socket socket;
public ServerThread(Socket socket) {
this.socket = socket;
}
public void run() {
try (InputStream input = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
OutputStream output = socket.getOutputStream();
PrintWriter writer = new PrintWriter(output, true)) {
String text;
while ((text = reader.readLine()) != null) {
System.out.println("受信:" + text);
writer.println("エコー:" + text);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
クライアントコード:
```java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try (Socket socket = new Socket("localhost", 1234);
OutputStream output = socket.getOutputStream();
PrintWriter writer = new PrintWriter(output, true);
InputStream input = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input))) {
writer.println("こんにちは、サーバー");
String response = reader.readLine();
System.out.println("サーバーの応答:" + response);
} catch (UnknownHostException e) {
System.out.println("サーバーが見つかりません:" + e.getMessage());
} catch (IOException e) {
System.out.println("I/Oエラー:" + e.getMessage());
}
}
}
```
この例は、JavaのSocketクラスを使用して基本的なネットワーク通信を実装する方法を示しています。サーバーは特定のポートでリスニングし、クライアントからのメッセージを受信し、エコーを返します。クライアントはサーバーに接続し、メッセージを送信し、エコーを受け取ります。
元のリンク: https://blog.csdn.net/qq_49548132/article/details/140253391
コメント(0)