`
Aga
  • 浏览: 217729 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

java线程2e中写得相当花哨的thread例子!

    博客分类:
  • J2SE
阅读更多
太鲜灵儿了!
package com.cxz.tools;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public abstract class TcpServer implements Runnable, Cloneable {
	Thread runner = null;

	ServerSocket server = null;

	Socket data = null;

	volatile boolean shouldStop = false;

	public synchronized void startServer(int port) throws IOException {
		if (runner == null) {
			server = new ServerSocket(port);
			runner = new Thread(this);
			runner.start();
		}
	}

	public synchronized void stopServer() {
		if (server != null) {
			shouldStop = true;
			runner.interrupt();
			runner = null;
			try {
				server.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	public void run() {
		if (server != null) {
			while (!shouldStop) {
				try {
					Socket dataSocket = server.accept();
					TcpServer newSocket = (TcpServer) clone();

					newSocket.server = null;
					newSocket.data = dataSocket;
					newSocket.runner = new Thread(newSocket);
					newSocket.runner.start();
				} catch (Exception ex) {
					ex.printStackTrace();
				}
			}
		} else {
			run(data);
		}
	}

	abstract private void run(Socket socket);

	public static void main(String[] args) throws IOException {
		new TcpServer().startServer(8080);
	}

}
分享到:
评论

相关推荐

    线程 JAVA java线程 java线程第3版 java线程第2版第3版合集

    本书的新版本展示了如何利用Java线程工具的全部优势,并介绍了JDK 2线程接口中的最新变化。你将学习如何使用线程来提高效率,如何有效地使用它们,以及如何避免常见的错误。本书讨论了死锁、竞态条件以及饥饿等问题...

    java中线程的应用例子

    在Java编程语言中,线程是程序执行的基本单元,它允许程序同时执行多个任务。Java中的线程模型是建立在操作系统级别的线程之上的,因此,通过Java的线程机制,开发者可以充分利用多核处理器的资源,提高程序的并发性...

    java多线程经典例子

    在这个经典例子中,我们看到两种创建线程的方式:通过继承`Thread`类和实现`Runnable`接口。 首先,我们创建了一个名为`ThreadUseExtends`的类,它直接继承自`Thread`类。这意味着这个类会拥有`Thread`的所有属性和...

    java一个多线程的经典例子

    根据提供的文件信息,我们可以归纳出以下关于Java多线程的经典示例中的关键知识点: ### Java多线程实现方式 在Java中,实现多线程有两种主要的方法:通过继承`Thread`类或者实现`Runnable`接口。 #### 继承...

    Java线程的简单例子

    Java线程是Java编程中的重要概念,它允许程序同时执行多个任务,极大地提高了程序的并发性和效率。在Java中,线程是程序执行的最小单位,由Java虚拟机(JVM)来管理和调度。理解并熟练掌握Java线程的创建、控制以及...

    java中的线程休眠例子

    在这个例子中,创建了一个新的线程并在其run方法中调用`Thread.sleep(2000)`,主线程则继续执行,2秒后,休眠的线程结束休眠并打印出“线程结束休眠,继续执行”。 5. **线程优先级与休眠** 虽然Java提供了线程...

    java线程实例 各种小Demo

    在Java中,线程可以分为用户线程和守护线程,前者是程序运行的基础,而后者是在所有用户线程结束时才终止的后台服务。 一、线程的创建方式 Java提供了多种创建线程的方式: 1. 继承Thread类:创建一个新的类,继承...

    java程序 两个线程实现学生成绩的读写

    Java程序中的多线程技术是实现并发...总的来说,这个Java程序展示了如何在并发环境中处理读写操作,是理解和实践Java多线程的一个好例子。通过学习这个程序,我们可以深入理解Java线程的使用以及并发编程中的核心概念。

    java多线程例子!.doc

    在Java编程中,多线程是一个核心概念,特别是在开发高并发、高性能的应用程序时。上述代码展示了如何在Java中创建和管理多个线程。让我们深入探讨一下这个例子以及与多线程相关的知识点。 首先,创建线程主要有两种...

    java多线程编程-详细炒作例子

    在Java中,线程被视为轻量级进程,与进程相似,它们拥有独立的执行控制,但不同之处在于,线程并不具备独立的存储空间,而是共享其所属进程的内存空间,这种共享机制简化了线程间的通信。 在Java内存模型中,主内存...

    java中的线程让步例子.

    Java中的线程让步是一种线程协作的方式,它允许一个正在执行的线程主动放弃当前的时间片,将CPU资源让给其他线程使用。这种方式在多线程编程中有时会用到,比如当一个线程完成某项任务后,希望其他线程能够优先执行...

    java多线程进度条

    在Java编程中,多线程是一项关键特性,它允许程序同时执行多个任务,提升系统效率。在处理耗时操作如大文件下载、数据处理或网络请求时,展示进度条能够提供用户友好的交互体验,让使用者了解任务的完成状态。本主题...

    Java 模拟线程并发

    在Java中,线程并发可以通过多种方式实现,包括继承Thread类、实现Runnable接口以及使用ExecutorService和Future等高级API。下面将详细探讨这些知识点。 首先,Java中创建线程主要有两种方法。一种是通过继承Thread...

    java线程分析java project例子

    java线程分析java project例子,里面分析了sleep(),join(),yield()和wait以及notify等方法的使用以及需要注意的地方。

    Java线程(Java.Thread)(中英版)

    在Java中,线程是通过`java.lang.Thread`类或者实现`Runnable`接口来创建和管理的。这个资料包包含的是关于Java线程的中英文参考资料,包括书籍和源代码。 "Java.Threads,3rd.Edition.chm"可能是一个关于Java线程的...

    java 多线程 控制按钮移动 例子

    在【标题】"java 多线程 控制按钮移动 例子"中,提到的是使用多线程来实现GUI(图形用户界面)中的按钮动态移动,这通常涉及到事件处理和线程同步。 【描述】提到了多线程的概念,它允许并发执行多个指令流,每个...

    java多线程经典案例

    在Java中,实现多线程有两种主要方式:通过实现Runnable接口或者继承Thread类。本案例将深入探讨Java多线程中的关键知识点,包括线程同步、线程通信和线程阻塞。 线程同步是为了防止多个线程同时访问共享资源,导致...

    java线程例子大全

    在Java中,线程有两种主要的创建方式:通过继承`Thread`类和实现`Runnable`接口。本资源“java线程例子大全”包含了十八个单元的实例代码,覆盖了Java线程操作的多个方面。 1. **线程创建** - 继承`Thread`类:...

    java 线程 dump 分析工具 2.3.3

    java 线程Dump 分析工具: Java的TDA线程转储分析器是一个用于分析Sun Java VM生成的线程转储和堆信息的小型Swing GUI(目前用1.4测试)。它从提供的日志文件中解析线程转储和类直方图。它提供关于发现的线程转储的...

    java 多线程小例子 很方便 很实用 适合初学者

    接下来的例子展示了Java中前台线程(用户线程)与后台线程(守护线程)的区别。通过调用`setDaemon(true)`,我们可以将一个线程设置为后台线程。后台线程主要用于系统级别的服务,例如垃圾回收,它们的存在是为了...

Global site tag (gtag.js) - Google Analytics