多线程创建及多线程下载图片例子(Thread)
1 自定义线程类集成Thread类
2重写run()方法
3 创建线程对象,调用start 方法启动线程
public class DemoCreateThread extends Thread {
@Override
public void run ( ) {
for ( int i = 0 ; i< 10 ; ++ i) {
System. out. println ( "多线程" + i) ;
}
}
public static void main ( String[ ] args) {
new DemoCreateThread ( ) . start ( ) ;
for ( int i = 0 ; i< 100 ; ++ i) {
System. out. println ( "public static void main 主线程" + i) ;
}
}
}
多线程下载图片
public class Demo02DownloadImg extends Thread {
String name;
public Demo02DownloadImg ( String name) {
this . name = name;
}
public static void main ( String[ ] args) {
Demo02DownloadImg demo02DownloadImg0 = new Demo02DownloadImg ( "Img0" ) ;
Demo02DownloadImg demo02DownloadImg1 = new Demo02DownloadImg ( "Img1" ) ;
Demo02DownloadImg demo02DownloadImg2 = new Demo02DownloadImg ( "Img2" ) ;
demo02DownloadImg0. start ( ) ;
demo02DownloadImg1. start ( ) ;
demo02DownloadImg2. start ( ) ;
}
@Override
public void run ( ) {
DownloadImg ( name) ;
}
public static void DownloadImg ( String name) {
try {
URL url = new URL ( "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1596374927503&di=fba233667a66b1b7963853c2f0ebe7ed&imgtype=0&src=http%3A%2F%2Fn.sinaimg.cn%2Fsinacn07%2F24%2Fw439h385%2F20180602%2F245f-hcikcew5121738.jpg" ) ;
URLConnection urlConnection = url. openConnection ( ) ;
InputStream in = urlConnection. getInputStream ( ) ;
FileOutputStream out = new FileOutputStream ( "F:/图片下载地址/" + name+ ".jpg" ) ;
byte [ ] b = new byte [ 512 ] ;
int len = 0 ;
while ( ( len = in. read ( b) ) != - 1 ) {
out. write ( b, 0 , len) ;
}
System. out. println ( "下载图片" + name+ "成功" ) ;
in. close ( ) ;
out. close ( ) ;
} catch ( MalformedURLException e) {
e. printStackTrace ( ) ;
} catch ( IOException e) {
e. printStackTrace ( ) ;
}
}
}