Java关闭Socket来终止线程
Java代码:
package Threads; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket; /**
* Created by Frank
*/
public class StopClose extends Thread {
protected Socket io; public void run() {
try {
io = new Socket("java.sun.com", );
BufferedReader is = new BufferedReader(new InputStreamReader(io.getInputStream()));
System.out.println("StopClose reading"); /**
* 死锁,因为读取响应之前,HTTP责成客户端发送一个请求(像GET/HTTP/1.0)和一个空行
*/
String line = is.readLine(); /**
* 所以我们永远不可能到达这里
*/
System.out.printf("StopClose FINISHED after reading %s!", line); } catch (IOException ex) {
System.out.println("StopClose terminating:" + ex);
}
} public void shutDown() throws IOException {
if (io != null) {
synchronized (io) {
io.close();
}
}
System.out.println("StopClose.shutDown() complete");
} public static void main(String[] args) throws InterruptedException, IOException {
StopClose t = new StopClose();
t.start();
sleep(*);
t.shutDown();
}
}
Java关闭Socket来终止线程的更多相关文章
- 【java】 java 中stop方法终止线程的不良后果
stop()方法属于暴力终止线程的方法,有诸多隐患已经被废弃了. 下面演示的是stop方法会释放锁,造成数据不一致的问题. package com.xwolf.java.thread; /** * C ...
- 【Java TCP/IP Socket】基于线程池的TCP服务器(含代码)
了解线程池 在http://blog.csdn.net/ns_code/article/details/14105457(读书笔记一:TCP Socket)这篇博文中,服务器端采用的实现方式是:一个客 ...
- Java线程池ThreadPoolExecutor使用和分析(三) - 终止线程池原理
相关文章目录: Java线程池ThreadPoolExecutor使用和分析(一) Java线程池ThreadPoolExecutor使用和分析(二) - execute()原理 Java线程池Thr ...
- Java中终止线程的三种方法
终止线程一般建议采用的方法是让线程自行结束,进入Dead(死亡)状态,就是执行完run()方法.即如果想要停止一个线程的执行,就要提供某种方式让线程能够自动结束run()方法的执行.比如设置一个标志来 ...
- java中终止线程的三种方式
在java中有三种方式可以终止线程.分别为: 1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止. 2. 使用stop方法强行终止线程(这个方法不推荐使用,因为stop和sus ...
- Java终止线程的三种方式
停止一个线程通常意味着在线程处理任务完成之前停掉正在做的操作,也就是放弃当前的操作. 在 Java 中有以下 3 种方法可以终止正在运行的线程: 使用退出标志,使线程正常退出,也就是当 run() 方 ...
- Java中正确终止线程的方法
Thread类中有一个已经废弃的 stop() 方法,它可以终止线程,但由于它不管三七二十一,直接终止线程,所以被废弃了.比如,当线程被停止后还需要进行一些善后操作(如,关闭外部资源),使用这个方法就 ...
- java线程中断和终止线程运行
ava中启动一个线程很容易,通常情况下我们都是等到任务运行结束后让线程自行停止.但有时需要在任务正在运行时取消他们,使得线程快速结束.对此Java并没有提供任何机制.但是我们可以通过Java提供的线程 ...
- 《Java并发编程》之线程中断与终止线程运行
Java中启动一个线程很容易,通常情况下我们都是等到任务运行结束后让线程自行停止.但有时需要在任务正在运行时取消他们,使得线程快速结束.对此Java并没有提供任何机制.但是我们可以通过Java提供的线 ...
随机推荐
- [Web 前端] superagent-nodejs处理请求的模块
cp from : https://blog.csdn.net/xiao_chun5316/article/details/48164435 关于superagent,这次写react组件,发送请求都 ...
- JavaScript中的方法、方法引用和参数
首先,我们来看一段代码,如果觉得不甚明白的,则本文会对你有益: var player = function (e) { return (function f(m) { ...
- Sklearn实现逻辑回归
方法与参数 LogisticRegression类的各项参数的含义 class sklearn.linear_model.LogisticRegression(penalty='l2', dual=F ...
- [转]PHP与Shell交互
From : http://blog.csdn.net/houqd2012/article/details/8219199 最近想使用PHP与Sheel进行交互.PHP控制显示和高层的逻辑结构.She ...
- go语言之进阶篇http客户端编程
1.http客户端编程 示例: http_server.go package main import ( "fmt" "net/http" ) //w, 给客户 ...
- go语言之进阶篇单向channel的应用 (生产者,消费者模型)
1.单向channel的应用 示例: package main import ( "fmt" ) //此通道只能写,不能读 func producer(out chan<- ...
- go语言之进阶篇接口的定义和实现以及接口的继承
1.接口的定义和实现以及接口的继承 示例: package main import "fmt" //定义接口类型 type Humaner interface { //方法,只有声 ...
- ubuntu18.04+ cuda9.0+opencv3.1+caffe-ssd安装
详细Ubuntu18.04,CUDA9.0,OpenCV3.1,Tensorflow完全配置指南 问题1:使用Cmake编译opencv源码 CMake Error: The following va ...
- android获取sd卡路径方法
public String getSDPath(){ File sdDir = null; boolean sdCardExist = Environment.getExternalStorage ...
- CSS-图像映射
图像映射是将一些区域变成热点,我们在网上获取搜索图片,图片上会有关于任务的简短信息介绍,还有一个接触更多的就是QQ空间的相册,浏览QQ空间照片鼠标滑动到人物头像的时候让你选择标记人物,都是将图片和内容 ...