从品牌网站建设到网络营销策划,从策略到执行的一站式服务
线程阻塞了,开启新线程执行你的操作。不要在主线程中执行耗时操作
创新互联专注于中大型企业的成都网站建设、网站制作和网站改版、网站营销服务,追求商业策划与数据分析、创意艺术与技术开发的融合,累计客户千余家,服务满意度达97%。帮助广大客户顺利对接上互联网浪潮,准确优选出符合自己需要的互联网运用,我们将一直专注成都品牌网站建设和互联网程序开发,在前进的路上,与客户一起成长!
代码很有意思 我反而学到了不少
已经知道问题在于这个方法numCheck
实际上是考虑多了 既然用户改变了textField才会触发事件
那么 我们就没必要去再次改变textField的内容了
因此textValueChanged事件中不需要去做setText的方法
你的程序在else中那一句注释掉就行了
else中什么都不做的
private int numCheck(TextField tf_temp,String num) {
int i = 0;
while(num.matches("0+\\d+")){
num = num.substring(1);
}
try{
i = Integer.parseInt(num);
//tf_temp.setText(num);
if(i255){ //这个最多只会发生一次不会发生死循环;
i = 255;
num = "255";
tf_temp.setText(num);
System.out.println(i);
}else {
//tf_temp.setText(num); //死循环。setText触发了TextvalueChanged()检查发现小于255,这个else又成立,这样死循环;
System.out.println(i);
}
}catch(NumberFormatException e){
alertDialog.setVisible(true);
tf_temp.setText("255");
e.printStackTrace();
}
return i;
}
代码与你的电脑系统不兼容。
建议你用PHP的来做。
win7 64位。
你这个不是死锁,就是flag的判断有问题,每个线程都是自己把自己锁住了,当flag为true时,看以下两段代码:
public synchronized void set(String name) {
if (flag)
try {
wait();
public synchronized void out() {
if (flag)
try {
wait();
两个线程都在wait,当然卡住不动了。
看你的代码,把set那段改成这样应该就好了:
public synchronized void set(String name) {
if (!flag)
try {
wait();
jta1.append("服务器已为此客户端建立线程:Client"+clientNo+"/n当前时间为"+ dd.format(new Dateand.old()));
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图