多线程之线程创建
-
package com.yeyue.demo01;
//创建线程方式一:继承Thread类,重写run()方法,调用start开启线程
//线程开始不一定立即执行,由cpu调度
public class TestThread1 extends Thread {
-
实现Runnable接口
多线程下载图片
package com.yeyue.demo01;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.net.URL;
//练习Thread,实现多线程同步下载图片
public class TestThread2 implements Runnable {
private String url; //图片下载的url
private String name; //下载的图片保存的图片名字
public TestThread2(String url,String name){
this.url = url;
this.name = name;
}
//下载图片的执行体
买票
package com.yeyue.demo01;
//多个线程同时操作一个对象
//买火车票的例子
//多个线程操作同一个资源的情况下,资源不安全了
public class TestThread4 implements Runnable {
//票数
private int ticketNums =10;
-
实现Callable接口
package com.yeyue.demo01;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.concurrent.*;
public class TestCallable implements Callable<Boolean> {
private String url; //图片下载的url
private String name; //下载的图片保存的图片名字
public TestCallable(String url,String name){
this.url = url;
this.name = name;
}
//下载图片的执行体
