`
zc985552943
  • 浏览: 291582 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Babe4ca6-5e6f-33aa-9078-762ee3ccfb7e
云计算--hadoop
浏览量:11915
5e98c2c1-2a82-3388-bc80-7fca0170bb12
redis解说
浏览量:27230
088014c7-4d3f-39ce-b72e-4ebe7046a134
MongoDB读书笔记
浏览量:16055
D2b74847-c860-3e26-96fe-3fa4498d6348
Maven读书笔记
浏览量:27302
688db20f-402d-3a1d-8188-d6153d6c7465
Java通信
浏览量:13719
社区版块
存档分类
最新评论

03_socket编程(补)_Java多线程1

阅读更多

下一节将要聊一下ServerSocket。并且会创建多线程的服务器,所以在这里先普及一下多线程的基础知识


1.定义任务:

编写多线程可以实现接口Runnable

package com.tcp.test;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class LiftOff implements Runnable {
	protected int countDown = 5;
	private static int taskCount = 0;
	private final int id = taskCount++;
	public LiftOff(){
		
	}
	public LiftOff(int countDown){
		this.countDown = countDown;
	}
	public String status(){
		return "#" + id + "(" + (countDown > 0 ? countDown : "liftOff") + ")";
	}
	
	@Override
	public void run() {
		while(countDown-- > 0){
			System.out.println(status());
//			Thread.yield();
		}
	}
	
	public static void main(String[] args) {
		LiftOff lo = new LiftOff();
//		lo.run();
//		for(int i = 0 ; i < 50 ; i++){
//			System.out.println("main thread :"+i);
//		}
		
		System.out.println("---------------------分割线------------------------");
		
//		Thread t = new Thread(lo);
//		t.start();
//		for(int i = 0 ; i < 50 ; i++){
//			System.out.println("main thread :"+i);
//		}
		
		System.out.println("---------------------分割线------------------------");
		
//		ExecutorService exec = Executors.newCachedThreadPool();
//		exec.execute(lo);
//		for(int i = 0 ; i < 50 ; i++){
//			System.out.println("main thread :"+i);
//		}
//		exec.shutdown();
		
		System.out.println("---------------------分割线------------------------");
		
//		ExecutorService exec = Executors.newFixedThreadPool(3);
//		for(int i = 0 ; i < 5 ; i++){
//			exec.execute(new LiftOff());
//		}
//		exec.shutdown();
		
		System.out.println("---------------------分割线------------------------");
		
		ExecutorService exec = Executors.newSingleThreadExecutor();
		for(int i = 0 ; i < 5 ; i++){
			exec.execute(new LiftOff());
		}
		for(int i = 0 ; i < 50 ; i++){
			System.out.println("main thread :"+i);
		}
		exec.shutdown();
		
	}
	
}

 代码描述:

创建了一个实现Runnable接口的类。在main中分别使用了不同的方法开启多线程。

第一种:没有开启多线程,只是调用了run方法

第二种:使用Thread.start()开启多线程

第三种:使用Executors.newCachedThreadPool()。然后调用execute开启多线程

第四种:Executors.newFixedThreadPool(3)。带有最大线程池,开启多线程

第五种:Executors.newSingleThreadExecutor();单个线程池,开启多线程。等价于Executors.newFixedThreadPool(1)

PS:最后记着调用exec.shutdown();这样才能将main线程结束掉

我们将main方法叫做主线程,Thread开启的叫做子线程。当调用start时。主线程和子线程开始并行



 
 

  • 大小: 29.6 KB
  • 大小: 18.2 KB
分享到:
评论

相关推荐

    Java源码:Socket编程.rar_java socket _java编程_socket java_socket编程 jav

    Java Socket编程是网络编程中的重要组成部分,主要用于实现客户端与服务器之间的通信。在Java中,Socket是基于TCP协议的,提供了一种可靠的、基于字节流的双向通信方式。本资料包含的"Java源码:Socket编程"是一个...

    Java多线程-Socket编程

    Java 多线程-Socket 编程是指在 Java 语言中使用多线程技术来实现网络编程,特别是使用 Socket 编程来实现客户端和服务器端的通信。在 Java 中,多线程可以使用 Thread 类和 Runnable 接口来实现,而 Socket 编程则...

    TCP-socket.zip_java_java Tcp _java socket _socket_socket多线程

    这个学习资源可以帮助我们深入了解Java中的TCP Socket编程和多线程技术。 首先,让我们来看看TCP协议。TCP是一种面向连接的、可靠的传输协议,它保证了数据包在传输过程中的顺序和完整性。通过三次握手建立连接,四...

    多线程Java_Socket编程示例

    ### 多线程Java_Socket编程示例 #### 背景与意义 在现代软件开发尤其是网络应用领域,多线程技术与Socket编程是两个非常重要的概念和技术。多线程能够有效地利用计算机资源,提高程序运行效率;而Socket编程则是...

    Java_TCP_IP_Socket编程(原书第2版)

    Java TCP/IP Socket编程是网络通信领域中的核心技术,尤其在Java平台中,Socket是实现客户端与服务器之间通信的基础。原书第二版深入浅出地讲解了Java Socket编程的各个方面,为开发者提供了全面的学习资源。以下是...

    TCP.rar_java socket 服务端_socket 服务端 java_tcp多线程

    通过阅读和理解这些代码,你可以更好地掌握Java中TCP Socket编程和多线程的应用。 总的来说,Java的Socket API和多线程技术相结合,使得我们可以构建健壮的、高并发的TCP服务器,以处理来自多个客户端的请求。这种...

    Java_TCPIP_Socket编程.pdf

    - **多任务处理**:在并发环境中,Java的多线程机制使得服务器能够同时处理多个客户端请求。书中详细讨论了线程池和Executor接口的使用,以及如何有效地管理和调度线程。 - **NIO(非阻塞I/O)**:传统I/O模型在等待...

    三步学会Java_Socket编程

    在Java中,Socket编程是实现网络通信的基础,它提供了进程间通信的能力,使得两个相隔万里的计算机可以通过互联网进行数据交换。本篇文章将深入讲解如何通过三步学习Java Socket编程。 **第一步:理解Socket** ...

    Java_TCPIP_Socket编程(中+英两本)

    此外,多线程技术在Java Socket编程中也非常重要。服务器端可能需要同时处理多个客户端的连接请求,这就需要使用线程来并发地处理每个连接。Java的`Thread`类或`Runnable`接口可以用于创建和管理这些并发线程。 ...

    java_socket编程

    Java Socket编程是Java网络编程的重要组成部分,主要用于实现客户端与服务器之间的双向通信。在这个主题中,我们将深入探讨Java Socket的基本概念、工作原理以及如何在实际项目中应用。 首先,Socket是网络上的两个...

    JavaTCP-Socket.zip_JAVA socket编程_java socket _socket 聊天

    本篇将深入探讨Java Socket编程及其在构建聊天应用中的应用。 首先,我们要了解TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它确保数据包按照顺序发送,并且在接收端按顺序接收,...

    利用Socket进行Java网络编程.zip_java socket _java 网络编程_java 聊天_socket jav

    总的来说,Java Socket编程是构建网络应用的基础,它涵盖了网络通信的核心原理,通过学习和实践,你可以创建自己的聊天应用或其他基于网络的项目。记住,实践是最好的老师,动手编写代码并运行测试是掌握这项技能的...

    Java_qq_Server.rar_Java_qq_Server_Socket网络编程_java 网络编程_即时通信_网络通信

    综上所述,Java QQ Server是一个利用Java的Socket网络编程技术构建的即时通信服务器,涵盖了网络连接、数据传输、多线程处理、协议解析等多个核心概念。理解并掌握这些知识点对于开发类似系统至关重要。

    有关socket的编程代码(简单的聊天程序).rar_Socket编程 聊天_java socket 聊天

    Socket编程是计算机网络通信中的重要概念,特别是在Java中,它为应用程序提供了低级的、面向连接的、基于字节流的通信方式。本压缩包包含的"有关socket的编程代码(简单的聊天程序)"是一个基础的Java聊天程序示例,...

    java_Socket多线程服务器源代码介绍

    ### Java Socket多线程服务器源代码介绍 #### 一、Java Socket基础知识 在开始之前,我们先了解一下Java Socket的基本概念。Socket是一种用于网络通信的技术,它允许不同计算机上的应用程序通过网络进行通信。Java...

    聊天室x_socket聊天室_java线程_聊天室_stuchatroom_ideajava聊天室_

    Java中的Socket编程是网络...总的来说,这个项目涵盖了网络编程基础、Java多线程技术以及基本的聊天室功能实现。通过实践这样的项目,开发者可以深入理解Socket通信机制,掌握多线程的使用,并锻炼解决实际问题的能力。

    Socket Model.rar_socket_socket 异步通信_线程 异步_通信 SOCKET

    在Java或其他支持Socket编程的语言中,Socket类提供了创建和管理连接的方法。这里的"socket_socket"可能指的是Socket接口的使用和实现。 异步通信是网络编程中的一种高级策略,它允许程序在等待响应时执行其他任务...

Global site tag (gtag.js) - Google Analytics