当前位置: 首页 > news >正文

h5网站开发中心百度爱采购排名

h5网站开发中心,百度爱采购排名,石家庄做网站科技公司,免费的asp网站一、多任务 现实中太多这样同时做多件事的例子了#xff0c;例如一边吃饭一遍刷视频#xff0c;看起来是多个任务都在做#xff0c;其实本质上我们的大脑在同一时间依旧只做了一件事情。 二、普通方法调用和多线程 普通方法调用只有主线程一条执行路径 多线程多条执行路径…一、多任务 现实中太多这样同时做多件事的例子了例如一边吃饭一遍刷视频看起来是多个任务都在做其实本质上我们的大脑在同一时间依旧只做了一件事情。 二、普通方法调用和多线程 普通方法调用只有主线程一条执行路径 多线程多条执行路径主线程和子线程并行交替执行 三、Process与Thread 说起进程就不得不说下程序。程序是指令和数据的有序集合其本身没有任何运行的含义是一个静态的概念。 而进程则是执行程序的一次执行过程它是一个动态的概念。是系统资源分配的单位 通常在一个进程中可以包含若干个线程当然一个进程中至少有一个线程不然没有存在的意义。线程是CPU调度和执行的单位 注意很多多线程是模拟出来的真正的多线程是指有多个cpu即多核如服务器。如果是模拟出来的多线程即使在一个cpu的情况下在同一个时间点cpu只能执行一个代码因为切换的很快所有就有同时执行的错觉。 四、核心概念 线程就是独立的执行路径 在程序运行时即使没有自己创建线程后台也会有多个线程如主线程gc线程 main()称之为主线程为系统的入口用于执行整个程序 在一个进程中如果开辟了多个线程线程的运行由调度器安排调度调度器是与操作系统紧密相关的先后顺序是不能人为的干预的 对同一份资源操作时会存在资源抢夺的问题需要加入并发控制 线程会带来额外的开销如cpu调度时间并发控制开销 每个线程在自己的工作内存互交内存控制不当会造成数据不一致 五、线程的创建 三种创建方式 继承Thread类 实现Runnable接口 实现Callable接口 一、Thread类 自定义线程类继承Thread类 重写run()方法编写线程执行体 创建线程对象调用start()方法启动线程 注意线程不一定立即执行CPU安排调度 //创建线程方式一继承Thread类重写run()方法调用start方法开启线程 //总结注意线程开启不一定立即执行由CPU调度执行 public class TestThread extends Thread{Overridepublic void run() {//run方法线程体for (int i 0; i 20; i) {System.out.println(我在看代码----i);}} ​public static void main(String[] args) {//main线程主线程 ​//创建一个线程对象TestThread testThread new TestThread();//调用start()方法开启线程testThread.start(); ​ ​for (int i 0; i 1000; i) {System.out.println(我在学习多线程---i);}} } 此处说明调用run()方法只是按照顺序简单执行run()方法而调用start()方法才会把线程交给调度器去调度执行 二、Runnalbe接口 定义MyRunnable类实现Runnable接口 实现run()方法编写线程执行体 创建线程对象调用start()方法启动线程 package day01; ​ /*** Author: Grace* Date: 2023/10/1 12:29* Description:*/ //创建线程方式2实现runnable接口重写run方法执行线程需要丢入runnable接口实现类调用start方法 public class TestThread02 implements Runnable{ ​Overridepublic void run() {//run方法线程体for (int i 0; i 20; i) {System.out.println(我在看代码----i);}} ​public static void main(String[] args) {//创建runnable接口的实现类对象TestThread02 testThread02 new TestThread02();//创建线程对象通过线程对象来开启我们的线程代理/* Thread thread new Thread(testThread02); ​thread.start();*/ ​new Thread(testThread02).start(); ​ ​for (int i 0; i 1000; i) {System.out.println(我在学习多线程---i);}} ​ } 小结 继承Thread类 子类继承Thread类具备多线程能力 启动线程子类对象.start() 不建议使用避免OOP单线程局限性 实现Runnable接口 实现接口Runnable具有多线程能力 启动线程传入目标对象Thread对象.start() 推荐使用避免单继承局限性灵活方便方便同一个对象被多个线程使用 三、实现Callable接口 实现Callable接口需要返回值类型 重写call方法需要抛出异常 创建目标对象 创建执行服务ExecutorService ser Executors.newFixedThreadPool(1); 提交执行FutureBoolean result1 ser.submit(t1) 获取结果boolean r1 result1.get() 关闭服务ser.shutdownNow() Callable的好处1.可以抛出异常 2.有返回值 六、初识并发问题 //多个线程同时操作同一个对象 //买火车票的例子 ​ ​ //发现问题多个线程操作同一个资源的情况下线程不安全数据紊乱 public class TestThread03 implements Runnable{ ​//票数private int ticketNums 10;Overridepublic void run() {while (true){if(ticketNums0){break;}//模拟延时try {Thread.sleep(200);} catch (InterruptedException e) {e.printStackTrace();} ​System.out.println(Thread.currentThread().getName()--拿到了第ticketNums--票);}} ​public static void main(String[] args) {TestThread03 testThread03 new TestThread03(); ​new Thread(testThread03,小明).start();new Thread(testThread03,老师).start();new Thread(testThread03,黄牛党).start();} }
http://www.hkea.cn/news/14416724/

相关文章:

  • 临沂网站建设周口外贸WordPress主机推荐
  • 沈阳设计网站中国建筑人才信息网
  • 巴楚网站建设网站是先解析后备案
  • 云游戏网站在线玩佛山做网站的公司哪家好
  • 自建英文网站东莞建设监督网站
  • 深圳移动官网网站建设好看的网页界面设计
  • 免费招聘网站排行榜无锡哪里做网站好
  • 做微商截图的网站免费推广网站入口2022
  • 网站怎么加留言找我家是做的视频网站
  • 建站推广哪里有建站新闻资讯纬天建筑工程信息网
  • 做推广的网站带宽需要多少合适网站怎么做百度认证
  • 免费空间已经注册 怎么做网站中企动力邮箱登陆入口
  • 网站内链建设方法广西桂川建设集团网站
  • 网站建设公司怎么徐闻网站开发公司
  • 做网站都需要准备什么余姚网站制作公司
  • 海南 网站制作在手机上创建网站
  • 福州网站建设咨询腾讯营销平台
  • 网站建设和赚钱方法在淘宝做网站可以改域名吗
  • 松江微网站建设江苏省建设信息网站管理平台
  • 建设mylove卡网站wordpress 不发布文章
  • 广州卓天跨境电商网站浙江省城乡建设网站证件查询
  • 建设厅网站进不去wordpress 效率
  • 随州网站seo诊断优化排名推广关键词
  • h5企业模板网站模板下载雄安智能网站建设
  • 网站跳出率计算国外优惠卷网站如何做
  • 个人备案号 可以做游戏网站吗越南网络公司排名
  • 湖南建设网塔吊证查询济南网站seo哪家公司好
  • 深圳常平网站建设制作公司怎么做公众号小程序
  • 网站的程序和数据库怎么做的扬州工程建设信息网官网
  • 怎么自己建网站网站后台登陆密码忘记