什么是多线程?(以王者为例子)
1、线程在进程下进行
(单独的英雄角色、野怪、小兵肯定不能运行)
2、进程之间不会相互影响,主线程结束将会导致整个进程结束
(两把游戏之间不会有联系和影响。你的水晶被推掉,你这把游戏就结束了)
3、不同的进程数据很难共享
(两把游戏之间很难有联系,有联系的情况比如上把的敌人这把又匹配到了)
4、同进程下的不同线程之间数据很容易共享
(你开的那一把游戏,你可以看到每个玩家的状态——生死,也可以看到每个玩家的出装等等)
5、进程使用内存地址可以限定使用量
(开的房间模式,决定了你可以设置有多少人进,当房间满了后,其他人就进不去了,除非有人退出) 此处学习来自————王二 老师
三种创造线程的方法
1、继承thread
check t=new check();
check t1=new check();
t.setName("线程一");
t1.setName("线程二");
t1.start();
t.start(); //多线程第一种启动方式-->继承thread//
2、 通过接口runnable;thread类 就能接收myrun
myrun mr=new myrun();
Thread t1=new Thread(mr);
Thread t2=new Thread(mr);
t1.setName("线程1");
t2.setName("线程2");
t1.start();
t2.start();///多线程第二种启动方式-->通过接口runnable;thread类 就能接收myrun;jdk
3、通过接口callable运行;再通过futuretask管理,thread类 接收
mycallable mc=new mycallable();
FutureTask<Integer
ft=new FutureTask<>(mc);
Thread t=new Thread(ft);
t.start();
Integer result=ft.get();
System.out.println(result);//多线程第三种启动方式-->通过接口callable运行;再通过futuretask管理,thread类 接收;
上述三种方法中,
第一种方法:扩展性差,但可以直接使用thread类方法
第二种方法:扩展性强,推荐使用
第三种方法:扩展性强,想使用futuretask时可以用
线程的六种状态(“7种”)
新建,就绪,“运行”,死亡,阻塞,等待,计时等待
此处学习来自——————黑马程序员