多线程

 1、进程是操作系统(OS)分配cpu和内存资源的最小单位。(运行时程序)
2.DOS是单进程。windows多进程是模拟出来的,常用的有;时间片轮转法(效率低)。
3.线程(Thread)是进程的组成单位。一个进程是由一个或多个线程组成。例如JVM中,程序刚开始执行,线程就启动。
   主线程main()结束后,主线程就结束了。还有其他子线程存在。进程结束,所有的线程都结束。
4、守护线程(Daemon Thread)垃圾回收属于这个线程。
   进程不会等待守护线程,普通子线程不结束,程序不会结束。而当普通子线程结束后,程序就已结束。
   把普通子线程变成守护线程的话,就会和主线程一起结束。在有死循环中,有多个线程时,必须给每个线程设置守护线程,这样才能结束,
   反之则不能。一是用sleep();二是用yield();这个不定期的间歇。
5、多线程执行,就是几个程序同时执行。多线程的应用环境1,程序有很多对象需要处理(游戏对象)。2,过于复杂的计算,为了不让用户等待而
   使用多线程。
6、线程的状态:(Born,Ready)new 一个线程时运行,alive,block,sleep,dead.
7、Thread.sleep(1000);//让当前线程休眠
   Thread.currentThread().getName();//当前线程的名字
   Thread.currentThread().getPriority();//线程的优先级(Java中定义为1-10);
8、线程的定义:继承自Thread,要覆盖方法run(),线程的休眠用:sleep(1000);调用线程时运行对象.start();
9、线程的两种方法:一是继承Thread,二是实现接口Runnable,在第二种方法中有两个要点;1、必须用Thread.sleep();2、在main方法中,
   必须new 一个Thread,把对象传进去,然后在thread.start();
10、线程安全:有多个线程同时调用一个方法时,就可能会出现线程安全的问题。解决方法是,在方法前面加synchronized(同步)这个关键字。
    以确保线程安全。还可以把需要线程安全的语句放在同步块中,(当多个线程同时进入方法时,同步块内的语句排队执行。)
11、只要进行了共享资源的操作要加锁1,全局属性,2,文件(同时写,可能会发生冲突),3,数据库4,频繁使用的值,加锁速度变慢,他是一个一个执行的线程。如果不
    加锁,多个线程同时执行,速度快,但是不能确保安全问题。
12.将非线程安全转化为线程安全。多线程使用Vector,单线程ArrayList使用起来比较好。
   LinkedList list=new LinkedList();
   list=(LinkedList)Collections.synchronizedList(list);//同步集合
13.死锁:相互锁住,互相调用。但是有一个类中的方法始终不能被执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值