Swing EDT引起的客户端卡死】的更多相关文章

最近调试程序时发现,点击某个界面时会出现卡死的情况,出现的频率还是比较频繁的. 再次出现卡死的情况后,利用jvisualvm查看线程的运行情况,dump操作之后发现线程间出现了死锁: Found one Java-level deadlock:============================="Thread-122":  waiting to lock monitor 0x484052e4 (object 0x1af2bb08, a com.raisecom.ems.templ…
<FilthyRichClients>读完了前几个章节,现将我的体会结合工作以来从事Swing桌面开发的经验,对本书的一些重要概念进行一次 分析,对书中的一些遗漏与模糊的地方及时补充,同时使读者消除长期以来“Swing性能低.界面丑陋”诸如此类的旧观念.读书笔记仅谈谈我对Swing的 理解,难免会犯错误,还望广大读者指教. 书中第二章-Swing渲染基本原理 中对Swing的线程做了系统地介绍.相比其他同类Swing教程,已经讲得非常深入了.但是如果读者之前对线程的掌握程度有限,尤其是编写代码…
简介 某备份系统大量使用rsync来传输文件,但是偶尔会出现rsync客户端在上传数据的时候长时间卡死,本文记录了解决问题的步骤. 本文只涉及rsync客户端中IO相关逻辑,关于rsync的发送算法并不涉及,服务端逻辑略有提到. 故障现象 rsync客户端一直驻留内存,strace跟踪rsync客户端进程发现: # strace -p 22819 Process 22819 attached - interrupt to quit select(4, [3], [], NULL, {57, 10…
最近调试程序时发现,点击某个界面时会出现卡死的情况,出现的频率还是比较频繁的. 再次出现卡死的情况后,利用jvisualvm查看线程的运行情况,dump操作之后发现线程间出现了死锁:Found one Java-level deadlock:============================="Thread-122":  waiting to lock monitor 0x484052e4 (object 0x1af2bb08, a com.raisecom.ems.temple…
整理下面的文章是因为个人觉得写的很好,关于java的客户端了解也并不是太多.看了下面的文章觉得很有必要贴出来,方便自己以后了解java客户端编程. Java软件设计师和管理人员经常会面临这样的难题:在开发应用软件的客户端时,应该在Swing.HTML.XML三种技术中选择谁.在这篇文章中,我将把自己在这三种技术方面的经验与广大读者共享,并对在Java应用软件开发中选择哪一种技术提出一些标准和技巧.在文章的最后,还会介绍一种整合Java Swing和HTML的新方法. 与现有的技术相比,Java有…
理论解释见官方的文档: https://docs.oracle.com/javase/tutorial/uiswing/concurrency/index.html 一个Swing程序中一般有下面三种类型的线程: 初始化线程(Initial Thread) UI事件调度线程(EDT) 任务线程(Worker Thread),可以看成后台其他的线程 每个程序必须有一个main方法,这是程序的入口.该方法运行在初始化或启动线程上.初始化线程读取程序参数并初始化一些对象.在许多Swing程序中,该线程…
10个使用Java最广泛的现实领域 如果你是一个初学者,刚刚开始学习Java,你可能会想Java有什么用呢?除了Minecraft貌似也看不到其他用Java写的游戏,像Adobe Acrobat和Microsoft Office等桌面工具也不是用Java写的,甚至Linux和Windows操作系统也和Java无关,那么到底什么时候才需要用Java呢? 毋需纠结,很多程序员都有这个困惑,或在学Java之前或已经到了语言学习的一定程度.顺便说一句,我们可以通过在桌面安装Java来得到有关Java使用…
<腾讯桌球:客户端总结> 本次分享总结,起源于腾讯桌球项目,但是不仅仅限于项目本身.虽然基于Unity3D,很多东西同样适用于Cocos.本文从以下10大点进行阐述: 架构设计 原生插件/平台交互 版本与补丁 用脚本,还是不用?这是一个问题 资源管理 性能优化 异常与Crash 适配与兼容 调试及开发工具 项目运营 1.架构设计 好的架构利用大规模项目的多人团队开发和代码管理,也利用查找错误和后期维护. 框架的选择:需要根据团队.项目来进行选择,没有最好的框架,只有最合适的框架. 框架的使用:…
1.同步和异步 同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待  卡死状态 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随意做其他事情,不会被卡死 2.ajax运行原理 页面发起请求,会将请求发送给浏览器内核中的Ajax引擎,Ajax引擎会提交请求到 服务器端, 在这段时间里,客户端可以任意进行任意操作,直到服务器端将数据返回给Ajax引擎后, ajax引擎会监听到ajax的状态改变,触发你设置的事件,从而执行自定义的js逻辑代码完成某种页…
导读 NFS(Network File System)即网络文件系统,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法. NFS服务简介 同时也是一种网络协议,NFS依赖RPC才能工作.(RHEL5.0上是NFS V3而RHEL6.0上是NFS V4) NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独…
本文由博主(SunboyL)原创,转载请注明出处:http://www.cnblogs.com/xsln/p/BeginProfiler.html 简介 在使用Profiler定位代码的性能热点时,很多同学往往忽略Profiler的提供接口,当发现某个Update函数特别耗时时,没有有效的手段进一步定位热点出自该Update函数的哪一个模块或哪一段代码. 使用Profiler评估客户端性能时,推荐使用Profiler提供的性能采样接口,来更精确地分析定位客户端存在的性能问题.       举个例…
一.Java并发基础 多线程的优点 资源利用率更好 程序设计在某些情况下更简单 程序响应更快 这一点可能对于做客户端开发的更加清楚,一般的UI操作都需要开启一个子线程去完成某个任务,否者会容易导致客户端卡死.例如一个网络请求,可以在回调接口中进行处理,而不是等待网络请求结束了再去做其它的UI操作(UI不会卡死) 多线程的代价 设计更加复杂 特别是共享数据的访问,多线程之间的数据通信等. 上下文切换开销 当CPU从执行一个线程切换到执行另外一个线程的时候,它需要先存储当前线程的本地的数据,程序指针…
背景简介 全民K歌专辑发布新玩法,传统宣传专辑战绩的流程,从获取数据,到制作海报,到传播,周期长运营成本高,如何快速分享战绩进行荣誉感的传播成为一个亟待解决的问题. 产品:能不能在专辑大事件触发时,自动生成一个大事件长图,供粉丝分享传播? 开发:理论上没问题,尝试下吧… 浏览器端实现方案 开发:大事件长图和专辑详情页大事件tab的视觉效果基本一致,如果能复用可以减少开发时间. 开发:怎么复用呢? 于是便有了下面在浏览器端尝试dom转图片的两种方案: html2canvas html2canvas…
每篇一句 没有任何技术方案会是一种银弹,任何东西都是有利弊的 相关阅读 [小家Java]深入了解数据校验:Java Bean Validation 2.0(JSR303.JSR349.JSR380)Hibernate-Validation 6.x使用案例 [小家Spring]Spring方法级别数据校验:@Validated + MethodValidationPostProcessor优雅的完成数据校验动作 [小家Java]深入了解数据校验(Bean Validation):从深处去掌握@Va…
建表 先讲一下常规建表: CREATE TABLE testCreate ( id ) NOT NULL auto_increment, time ) NOT NULL, type ) NOT NULL, name ) default null, ) NOT NULL, PRIMARY KEY(id), index(id), index(type) )ENGINE=INNODB DEFAULT CHARSET=utf8; 设置主键.自增.默认值及不太常见的将索引放在建表的操作中,下面要提到的是从…
作者:吴秦出处:http://www.cnblogs.com/skynet/本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名吴秦(包含链接). (转)<腾讯桌球:客户端总结> 本次分享总结,起源于腾讯桌球项目,但是不仅仅限于项目本身.虽然基于Unity3D,很多东西同样适用于Cocos.本文从以下10大点进行阐述: 架构设计 原生插件/平台交互 版本与补丁 用脚本,还是不用?这是一个问题 资源管理 性能优化 异常与Crash 适配与兼容 调试及开…
1. 问题起因 通过snapshot做跨集群数据同步时,在执行拷贝脚本里没有指定所有者及所有组,导致clone时没有权限,客户端卡死.master一直报错,经过一系列操作后,导致RIT异常. 2. 异常记录 不指定所有者,默认权限是hdfs:hbase,会导致异常 执行clone_snapshot <snapshot_name>,<table_name>时,master异常信息 经过一系列操作后(重启.删除hdfs相关目录)出现了RIT: 3. 解决过程 因之前使用hbase1.2…
在Swing程序中,经常能看到如下这种代码: SwingUtilities.invokeLater(new Runnable(){ @Override public void run() { textField1.setText("element changed!"); textField1.setForeGround(Color.RED); } }); 为什么要用SwingUtilities.invokeLater,而不直接调用呢?因为大多数SwingAPI是非线程安全的,也就是说不…
  登录|注册     mentat的专栏       目录视图 摘要视图 订阅 [专家问答]韦玮:Python基础编程实战专题     [知识库]Swift资源大集合    [公告]博客新皮肤上线啦     快来领福利:C币.机械键盘      客户端是选择Java Swing还是C# Winform 标签: swingc#winformservice浏览器java 2012-03-27 11:38 2191人阅读 评论(1) 收藏 举报  分类: JAVA(7)   本人作品(20)  版权…
记录一下两个用java swing写的客户端. 项目1: 关键词:swing  jtable 代码如下: 1.主类: package com.my.agent.client; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java…
本系列文章导航 深入浅出Java多线程(1)-方法 join 深入浅出Java多线程(2)-Swing中的EDT(事件分发线程) 深入浅出多线程(3)-Future异步模式以及在JDK1.5Concurrent包中的实现 深入浅出多线程(4)对CachedThreadPool OutOfMemoryError难题的一些想法 深入浅出多线程(5)以并行包线程池为例说说线程池的设计需求及使用 深入浅出多线程(6)分析并行包线程池的设计与实现 本文主要解决的问题是: 如何使其Swing程序只能运行一个…
代码如下: package com.swift; import java.awt.BorderLayout; import java.awt.Color; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; i…
建立Chat项目,并在项目中创建窗口类 package com.swift; import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; public class ChatClientFrame extends JFrame{ private static f…
最近在复习java的io流及网络编程.但复习写那些样板程序总是乏味的.便准备写个项目来巩固.想来想去还是聊天项目比较好玩.如果日后完成的比较好自己也可以用(哈哈哈).并且自己后面也要继续巩固java多线程和集合(这两部分学的很差). 我给这个项目命名为很大众的名字——" chat " 这算是"chat 1.0" 吧目前只实现了群聊+文件传输功能,没有用户注册模块. 因为自己在阿里云上的服务器之前到期没有续费,所以就无法将服务端实现两个局域网之间的信息传输.只能在自己…
为什么要使用SwingWorker 在swing开发中,如果一个应用程序,执行一些任务,需要大量的时间来完成,比如下载一个大文件或执行一个复杂的数据库查询. 我们假设这些任务是由用户使用一个按钮触发的.在单线程应用程序,用户单击按钮,进入计算的过程,然后等待任务完成之前,所有的事件都在主线程EDT线程进行. 但如果某些任务耗时很长,用户将甚至不能在中途取消任务,应用程序必须响应只有当长任务完成.不幸的是,许多应用程序显着这样的行为和用户感到沮丧,程序仿佛卡死一样. 多线程可以解决这个问题.它使应…
本文参考了 http://space.itpub.net/13685345/viewspace-374940,原文作者:javagui 在多线程编程当中,总会提到图形编程,比如java中的swing,并一再提出,在swing中,一切都是单线程的.所有的界面更新操作都必须在排 队似地进行.这样的目的在于,避免由于多线程的处理导致界面渲染以及组件排列异常,同时也避免了由于多线程带来的加锁访问以及等待锁的情况发生. EventQueue的派发机制由单独的一个线程管理,这个线程称为事件派发线程(EDT)…
1. java中进度条不能更新问题的研究 感谢大佬:https://blog.csdn.net/smartcat86/article/details/2226681 为什么进度条在事件处理过程中不更新,而是在完成后,从0%调到100%? 分两种情况: 1)在AWT事件线程中执行的操作 当 应用程序在事件线程中执行长时间的操作时,会阻塞正常的AWT事件处理,因此阻止了重绘操作的发生.这同常会在下列情况下发生:应用程序响应一个来自用户 界面的请求时,在连接到一个按钮或其他GUI组件的事件处理程序中执…
发现问题 今天有客户向我们反馈了一个BUG:一个页面在IE.FireFox.Chrome52中能正常运行,但是在最新版的Chrome53中显示不了??? 习惯性的,我们需要客户提供页面在浏览器中的HTML源代码,客户居然告诉我们说:右键打不开!!! 这就怪了,莫非写的代码导致死循环了,然后浏览器崩溃了........ 首先和客户确认运行环境: 使用了最新版的FineUIPro v3.2.0.4 使用了最新版的Chrome 53.0.2785 稳定版 一切看似都是最新的,然后我们让客户在IE浏览器…
Java界面设计的用途 开发者可以通过Java SE开发丰富并且强大的具有图形界面的桌面应用程序.也可以设计一些提高效率的工具软件,帮助自己处理机械性工作. Java 的图形界面工具包,可以用于工具类软件开发.管理类软件开发.通用客户端开发.银行客户端软件开发.Eclipse 插件开发等方向.在许多知名的大型软件中,都能够见到 Java 的身影,如某些版本的 Photoshop.思维导图软件.Eclipse.IDEA 开发环境等. Java有多套GUI工具包,因为没有一个可以满足所有的要求. J…
客户端获取服务器端软件更新版本方法: package com.platform.ui.update; import java.io.BufferedInputStream; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOEx…