南栀倾寒   >   标签墙   >   JAVA 标签

多线程死锁的模拟 有更新!

2017-09-05

死锁的原因:  线程1锁住资源A等待资源B,线程2锁住资源B等待资源A,两个线程 都在等待自己需要的资源,而这些资源被另外的线程锁住,这些线 程你等我,我等你,谁也不愿意让出资源,这样死锁就产生了。  哲学家进餐问题  解决死锁的办法之一就是:加大锁的粒度。 public class DeadLock02 { // 绑匪:说:你给我500亿,我就放了你儿子,目的:得到了500亿 // 富翁:说:你先放了我儿子,,我就给你钱,目的:赎回儿子。 public static void main(String[] args) { MyThread02 mt1 = new MyThread02(); MyThread02 mt2 = new MyThread02(); mt1.flag = true; mt2.flag = false; new Thread(mt1).start(); new Thread(mt2).start(); } } class Kidnapper{ public void say(){ System.out.println("你给我500亿,我就放了你儿子");....

利用多线程进行文件的复制 有更新!

2017-09-05

class FileCopy implements Runnable { private File src;// 源文件 private File tar;// 目标文件 private int n;// 分几部分 private int no;// 每部分的编号 public FileCopy(File src, File tar, int n, int no) { this.src = src; this.tar = tar; this.n = n; this.no = no; } @Override public void run() { try { RandomAccessFile rafsrc = new RandomAccessFile(src, "r"); RandomAccessFile raftar = new RandomAccessFile(tar, "rw"); long len = src.length(); long size = len % n == 0 ? len / 4 : len / 4 + 1;// 每部分的字节数 byte[] b = new b....

(Apache)使用HttpClient方式访问HTTP 有更新!

2017-09-05

Apache使用GET方式访问HTTP 得到访问地址 HttpGet(有参数提供参数) 得到网络访问对象HttpClient,进行连接 得到返回值 如果返回值正常,返回得到的数据对象HttpEntity,得到数据流 注意: GET方式在URL中传递中文参数乱码问题我解决了。 乱码原因:不管客户端采用什么方式给中文字符编码,最终附加到URL中之前,都将在已有的编码基础上再对字符以ISO-8859-1字符集做二次编码然后再附加到URL中。 即所有的非ASCII字符集参数在URL中最终都是ISO-8859-1编码,如果之前已经进行了一次编码,那么这就是在已有编码的基础上二次编码 解码是编码的逆操作,只要在服务器端对客户端进行的编码再进行对应解码即可。过程如下: 1. 在客户端对中文字符串编码,比如使用UTF-8编码 String codeParam = URLEncoder.encode(“中文字符串”, “UTF-8”); 2. 把这个编码好的codeParam作为参数附加到URL地址中; 3. 服务器端getRequestParameter()方法获得该参数(当然这个参数作为URL提交时....