黑马程序员----------------io流复制文件
2013-12-15 22:15
190 查看
----------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流!
----------------------
什么叫做进程?什么叫做线程?
答:我总结他就采取了两招“举例+画图”进程就是在内存在开辟了一块空间,放一个程序进去,线程就是这个程序中的一个任务,多线程就是一个程序中多个任务同时进行,然后又举例,打开一个360,点击系统优化,然后再点击电脑体检。清晰明了的说明白了!
实现多线程有几种方法?
两种:1、继承Thread类
1.重写父类的run方法,
2.把任务代码写在里面,
3.调用线程对象的start方法开启线程。
2、实现 Runable接口
1.覆盖接口中的run方法,将线程的代码封装到run方法中
2.通过Thread类创建线程对象,并将Runnable接口的子类对象作为Thread类的构造函数的参数传递。
为什么?因为线程的任务都封装在Runnable接口的子类对象的run方法中,所以要在线程对象创建时就必须明确要运行的任务。
3.调用线程对象的start方法开启线程。
4.实现Runnable接口的好处:
1、将线程的任务从线程的子类中分离出来,进行了单独的封装。按照面向对象的思想将任务的封装成对象
2.也是说有的接口的好处,避免了java单继承的局限性。
线程安全问题产生的原因:
1.对多个线程操作共享的数据
2.操作共享数据的线程代码有多条
当一个线程在执行操作共享数据的多条代码过程中,其他线程参与了运算就会导致线程安全问题的产生。
同步的好处:
解决线程安全的方法:就是同步代码块synchronized(对象){}
同步的弊端:相对以前降低了执行效率
同步的前提:必须所有的对象使用一个锁
同步函数使用的锁是this;
同步函数和同步代码块的区别:
1、同步代码块的锁是任意的对象。
2、建议使用同步代码块
静态的同步函数使用的锁是 该函数所属的字节码文件对象 可以用getClass 方法获取,也可以用当前 类名.class 表示
单列模式:
/*
饿汉模式
*/
class Single{
private static Single s = new Single();
private Single(){}
private static Single getInstance(){
return s;
}
}
/*
懒汉模式
*/
class Single{
private static Single s = null;
private Single(){}
private static Single getInstance(){
if(s==null){
s = new Single();
}
return s;
}
}
/*
单例模式涉及的多线程的问题 修改上面的懒汉模式 更安全 性能又高
*/
class Single{
private static Single s = null;
private Single(){}
private static Single getInstance(){
if(s==null)
Synchronized(Single.class){
if(s==null){
s = new Single();
}
}
return s;
}
}
----------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流!
----------------------
----------------------
什么叫做进程?什么叫做线程?
答:我总结他就采取了两招“举例+画图”进程就是在内存在开辟了一块空间,放一个程序进去,线程就是这个程序中的一个任务,多线程就是一个程序中多个任务同时进行,然后又举例,打开一个360,点击系统优化,然后再点击电脑体检。清晰明了的说明白了!
实现多线程有几种方法?
两种:1、继承Thread类
1.重写父类的run方法,
2.把任务代码写在里面,
3.调用线程对象的start方法开启线程。
2、实现 Runable接口
1.覆盖接口中的run方法,将线程的代码封装到run方法中
2.通过Thread类创建线程对象,并将Runnable接口的子类对象作为Thread类的构造函数的参数传递。
为什么?因为线程的任务都封装在Runnable接口的子类对象的run方法中,所以要在线程对象创建时就必须明确要运行的任务。
3.调用线程对象的start方法开启线程。
4.实现Runnable接口的好处:
1、将线程的任务从线程的子类中分离出来,进行了单独的封装。按照面向对象的思想将任务的封装成对象
2.也是说有的接口的好处,避免了java单继承的局限性。
线程安全问题产生的原因:
1.对多个线程操作共享的数据
2.操作共享数据的线程代码有多条
当一个线程在执行操作共享数据的多条代码过程中,其他线程参与了运算就会导致线程安全问题的产生。
同步的好处:
解决线程安全的方法:就是同步代码块synchronized(对象){}
同步的弊端:相对以前降低了执行效率
同步的前提:必须所有的对象使用一个锁
同步函数使用的锁是this;
同步函数和同步代码块的区别:
1、同步代码块的锁是任意的对象。
2、建议使用同步代码块
静态的同步函数使用的锁是 该函数所属的字节码文件对象 可以用getClass 方法获取,也可以用当前 类名.class 表示
单列模式:
/*
饿汉模式
*/
class Single{
private static Single s = new Single();
private Single(){}
private static Single getInstance(){
return s;
}
}
/*
懒汉模式
*/
class Single{
private static Single s = null;
private Single(){}
private static Single getInstance(){
if(s==null){
s = new Single();
}
return s;
}
}
/*
单例模式涉及的多线程的问题 修改上面的懒汉模式 更安全 性能又高
*/
class Single{
private static Single s = null;
private Single(){}
private static Single getInstance(){
if(s==null)
Synchronized(Single.class){
if(s==null){
s = new Single();
}
}
return s;
}
}
----------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流!
----------------------
相关文章推荐
- 黑马程序员--IO流中使用字节流复制文件的效率比较
- 黑马程序员——IO流复制文件
- 黑马程序员 用io流复制一个文件
- 黑马程序员-学习笔记2-IO流之文件复制
- 黑马程序员——IO流的复制文件方法(含缓冲区方法)
- 黑马程序员-用IO流复制文本文件、图片文件、歌词文件举例
- 黑马程序员——IO流复制文件
- 黑马程序员——java-使用IO流复制文件主要的五种方法
- 黑马程序员------IO流文件复制4种代码实现
- 黑马程序员----IO流以及文件的操作
- Java基础之IO流,通过字节流缓冲区进行媒体文件的复制操作
- java中的IO流实现文件的复制下载
- 黑马程序员——>第二十天<io流(File-Proterties-合并流-切割文件)>
- 20-IO流(字符流-缓冲区-LineNumberReader了解 21-IO流(字节流-操作文件基本演示). 22-IO流(字节流-练习-复制MP3)
- IO流---文件复制
- Java IO流之拷贝(复制)文件
- IO流文件复制
- 黑马程序员-Java文件复制代码
- 用IO流实现文件复制功能
- java使用IO流完成文件的复制(文本、图片、视频)