摘要:
/**同步有两种方式:一、同步代码块;二、同步函数使用synchronized注意只要对需要同步的代码进行同步,多余的不用如何找问题: 1、明确哪些代码是多线程运行代码 2、明确共享数据 3、明确多线程运行代码中哪些语句是操作共享数据的。**/class Bank{ private int sum;... 阅读全文
摘要:
//线程安全问题的原因其实就是:线程执行多条语句的时候出现了阻塞,然后没有执行完该线程另一线程就启动了。//解决方法就是同步代码块:synchronized(对象)//synchronized(对象)//{// 需要同步的代码//}class Ticket implements Runnable{... 阅读全文
摘要:
/**线程存在于进程当中,进程由系统创建。创建新的执行线程有两种方法注意: 线程复写run方法,然后用start()方法调用,其实就是调用的run()方法,只是如果直接启动run()方法, 那么就会出现线程调用结束后再执行主函数的情况。另一种情况是用start()说多线程都在抢夺执行权,要明确的是:... 阅读全文
摘要:
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;//添加引用,并导入命名空间using System.Management;using Syst... 阅读全文
摘要:
/**将IP地址按照字符串的自然顺序排序,只要让他们的每段的位数都是3就可以。1、按照每一段需要的最多的0进行补齐,那么每一段就会至少保证有3位。2、将每一段都保留3位。这样所有的ip地址都是每段3位。**/import java.util.*;class regs{ public static v... 阅读全文
摘要:
/**客户端1、服务端点2、读取客户端已有的文件数据3、通过socket输出流发给服务端4、读取服务端反馈信息5、关闭**/import java.io.*;import java.net.*;class UploadClient{ public static void main(String[] ... 阅读全文
摘要:
/**客户端1、服务端点2、读取客户端已有的文件数据3、通过socket输出流发给服务端4、读取服务端反馈信息5、关闭**/import java.io.*;import java.net.*;class UploadClient{ public static void main(String[] ... 阅读全文
摘要:
import java.io.*;import java.net.*;class Send implements Runnable{ private DatagramSocket ds; public Send (DatagramSocket ds) { this.ds = ds; } publi... 阅读全文