java无主窗口GUI程序主线程不能调用sleep(long)方法,会产生异常。

public class fxframe{

public static void main(String[] args) {

// TODO Auto-generated method stub

fxframe mainframe=new fxframe();

mainframe.go();

}

public void go()

{

buf1=new byte[5000];

running = true;

new Thread() {

public void run()

{

readthread();

};

}.start();

netwatch();

}

netwatch()

{

System.out.println("sendthread starts!");

while (running)

{

if (socket == null)

{

netcon("xx.xx.xx", nport);

}

if (socket != null)

{

try

{

os.write(netreq);

os.flush();

System.out.println("send data!");

}

catch (Exception e)

{

socket = null;

}

}

try

{

Thread.sleep(5000);

}

catch (InterruptedException e)

{}

}

try

{

is.close();

os.close();

socket.close();

}

catch (Exception e)

{}

System.out.println("sendthread end!");

}

private void readthread()

{

int i;

String s1;

System.out.println("readthread starts!");

while (running) {

if (socket != null) {

try {

// 读取数据

i=is.read(buf1);

s1=new String(buf1,0,i,"GBK");

System.out.println("recv data!"+s1);

}

catch (IOException e) {

}

} else {

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

}

}

}

System.out.println("readthread end!");

}

}

在这个程序输出JAR,用launch4j.exe包装成exe,运行时在网络监控看到连续不断的发送请求包。其实就是休眠sleep(long)产生异常所致,立即被捕捉又返回循环。

将以上程序的netwatch()启动线程,在主线程调用readthread()后正常。

public void go()

{

buf1=new byte[5000];

running = true;

new Thread() {

public void run()

{

netwatch();

};

}.start();

readthread();

}

java sleep不能使用_java无主窗口GUI程序主线程不能调用sleep(long)方法,会产生异常...相关推荐

  1. java 设置主线程_Java线程编程中的主线程讲解

    当Java程序启动时,一个线程立刻运行,该线程通常叫做程序的主线程(main thread),因为它是程序开始时就执行的.主线程的重要性体现在两方面: 它是产生其他子线程的线程: 通常它必须最后完成执 ...

  2. Java中主线程如何捕获子线程抛出的异常

    Java中主线程如何捕获子线程抛出的异常 参考文章: (1)Java中主线程如何捕获子线程抛出的异常 (2)https://www.cnblogs.com/jpfss/p/10272885.html ...

  3. QT中如何实现Thread与GUI的主线程连通

    QT中如何实现Thread与GUI的主线程连通 本文介绍的是QT中实现Thread与GUI主线程通,目前只会一种,采用信号槽机制. 通常情况下,信号和槽机制可以同步操作,这就意味着在发射信号的时候,使 ...

  4. 【Java 多线程】Java中主线程如何捕获子线程抛出的异常

    首先明确线程代码的边界.其实很简单,Runnable接口的run方法所界定的边界就可以看作是线程代码的边界.Runnable接口中run方法原型如下: public void run(); 而所有的具 ...

  5. [转]Java中主线程如何捕获子线程抛出的异常

    这么来看待这个问题.首先明确线程代码的边界.其实很简单,Runnable接口的run方法所界定的边界就可以看作是线程代码的边界.Runnable接口中run方法原型如下:     <<   ...

  6. java怎么实现购物车_java实现网上购物车程序

    导读热词 用java代码写一个简单的网上购物车程序,供大家参考,具体内容如下 需求: 1.写一个商品类,有商品编号.商品名称.商品分类.商品单价属性. 2.写一个商品条目信息类,有商品和数量两个属性, ...

  7. java的图形用户界面_Java学习之GUI(图形用户界面)

    一.GUI 概述 1.概述: 1.GUI:Graphical User Interface,即图形用户界面,用于计算机与用户交互的一种方式 2.计算机与用户交互的形式:GUI和CLI GUI: Gra ...

  8. java swing最小化_Java swing 窗口最小化到任务栏 点击右键显示菜单(复制代码即可运行查看效果)...

    Java swing 窗口最小化到任务栏 点击右键显示菜单(复制代码即可运行查看效果) package swing; import java.awt.AWTException; import java ...

  9. java组件自适应窗口大小_java swing 窗口和控件自适应大小

    本文记录java开发CS结构时怎么自适应屏幕大小以及控件跟随frame大小变化大小.位置和字体大小 需要注意: 1.代码必须放置在其构造方法中.如:我的frame1是我frame.java的名,则代码 ...

最新文章

  1. 项目问题思考之策略模式
  2. 一些VC++ 系统类通用类
  3. PAT甲级1112 Stucked Keyboard:[C++题解]卡住的键盘、双指针、去重
  4. html5 can,微软想要从HTML5中分离Can
  5. C和汇编---while反汇编
  6. boost库中mutex、condition_variable与mutex::scoped_lock联合使用实现线程之间的通信
  7. 几款效率神器助你走上人生巅峰
  8. 文本文档怎么转换为html文件,win10系统下如何将文本文档转换为网页
  9. 企业级多用户发卡平台源码 源码完全开源 无任何加密
  10. linux中patch补丁的文件格式和使用
  11. 音视频采集-摄像头视频采集(原理与实现)
  12. eNSP交换机配置IP
  13. esp32拍照传输到手机android,esp32-cam拍照上传云平台教程
  14. JAVA学习笔记——BLOB类型和数据批量操作
  15. 停止在csdn发文及上传资源的声明
  16. JAVA 利用多方法查找质数(素数)
  17. 下载没有种子链接用特征码下片的方法
  18. 基于Ext的开发实例_模拟Windows桌面
  19. 网络安全没有“银弹”
  20. 游戏开发入门 二、游戏中的设计模式

热门文章

  1. python画图代码星星-Python打印“菱形”星号代码方法
  2. 执行后可以查看python版本的是-【单选题】执行后可以查看Python的版本的是
  3. python解释器是什么-python编译器和解释器的区别是什么
  4. 我在学python-你们以为我在学C++?其实我在学Python!人生苦短!
  5. python线上培训多少钱-Python人工智能在线培训班学费多少钱?
  6. python语言怎么学-如何学习Python,以及新手如何入门?
  7. java和python的web自动化有什么区别-Java 和 Python 有哪些区别?
  8. python画出心形图-python画出心形图
  9. python爬虫实战案例-Python爬虫实战案例:手机APP抓包爬虫
  10. python使用方法-python中dict使用方法详解