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

在小型网站建设小组中的基本网站流程图设计

在小型网站建设小组中的基本,网站流程图设计,设计院一般年薪,帮忙注册公司要多少钱并发编程 3.Java线程 本章内容 创建和运行线程 查看线程 线程 API 线程状态 3.1 创建和运行线程 方法一,直接使用 Thread // 创建线程对象 Thread t new Thread() {public void run() {// 要执行的任务} }; // 启动线程 t.start();例如: // 构…

并发编程

3.Java线程

本章内容

  • 创建和运行线程

  • 查看线程

  • 线程 API

  • 线程状态

3.1 创建和运行线程

方法一,直接使用 Thread

// 创建线程对象
Thread t = new Thread() {public void run() {// 要执行的任务}
};
// 启动线程
t.start();

例如:

// 构造方法的参数是给线程指定名字,推荐
Thread t1 = new Thread("t1") {@Override// run 方法内实现了要执行的任务public void run() {log.debug("hello");}
};
t1.start();

输出:

19:19:00 [t1] c.ThreadStarter - hello

请添加图片描述

方法二,使用 Runnable 配合 Thread

把【线程】和【任务】(要执行的代码)分开

  • Thread 代表线程

  • Runnable 可运行的任务(线程要执行的代码)

Runnable runnable = new Runnable() {public void run(){// 要执行的任务}
};
// 创建线程对象
Thread t = new Thread( runnable );
// 启动线程
t.start();

例如:

// 创建任务对象
Runnable task2 = new Runnable() {@Overridepublic void run() {log.debug("hello");}
};
// 参数1 是任务对象; 参数2 是线程名字,推荐
Thread t2 = new Thread(task2, "t2");
t2.start();

输出:

19:19:00 [t2] c.ThreadStarter - hello

请添加图片描述

Java 8 以后可以使用 lambda 精简代码

// 创建任务对象
Runnable task2 = () -> log.debug("hello");
// 参数1 是任务对象; 参数2 是线程名字,推荐
Thread t2 = new Thread(task2, "t2");
t2.start();

@FunctionalInterface

Alt+Enter : IDEA中自动简化快捷键

对比:

请添加图片描述

原理之Thread与Runnable的关系

分析 Thread 的源码,理清它与 Runnable 的关系

小结

  • 方法1 是把线程和任务合并在了一起,方法2 是把线程和任务分开了

  • 用 Runnable 更容易与线程池等高级 API 配合

  • 用 Runnable 让任务类脱离了 Thread 继承体系,更灵活

  • 组合大于继承

请添加图片描述

方法三,FutureTask配合Thread

FutureTask 能够接收 Callable 类型的参数,用来处理有返回结果的情况

// 创建任务对象
FutureTask<Integer> task3 = new FutureTask<>(() -> {log.debug("hello");return 100;
});
// 参数1 是任务对象; 参数2 是线程名字,推荐
new Thread(task3, "t3").start();
// 主线程阻塞,同步等待 task 执行完毕的结果
Integer result = task3.get();
log.debug("结果是:{}", result);

输出:

19:22:27 [t3] c.ThreadStarter - hello
19:22:27 [main] c.ThreadStarter - 结果是:100

请添加图片描述

3.2 观察多个线程同时运行

主要是理解

交替执行

谁先谁后,不由我们控制,任务调度器控制

单核不建议

请添加图片描述

3.3 查看进程线程的方法

windows

  • 任务管理器可以查看进程和线程数,也可以用来杀死进程

请添加图片描述

  • tasklist 查看进程

请添加图片描述

  • taskkill 杀死进程

taskkill /F /PID 28060

请添加图片描述

linux

  • ps -fe 查看所有进程

  • ps -fT -p 查看某个 进程(PID)的所有线程

  • kill 杀死进程

请添加图片描述

  • top 按大写 H 切换是否显示线程

  • top -H -p 查看某个进程(PID)的所有线程

请添加图片描述

Java

  • jps 命令查看所有 Java 进程

请添加图片描述

  • jstack 查看某个 Java 进程(PID)的所有线程状态

请添加图片描述

Jconsole 来查看某个 Java 进程中线程的运行情况(图形界面)

请添加图片描述

请添加图片描述
请添加图片描述

Jconsole 远程监控配置

  • 需要以如下方式运行你的 java 类
java -Djava.rmi.server.hostname=`ip地址` -Dcom.sun.management.jmxremote -
Dcom.sun.management.jmxremote.port=`连接端口` -Dcom.sun.management.jmxremote.ssl=是否安全连接 -
Dcom.sun.management.jmxremote.authenticate=是否认证 java类

请添加图片描述

  • 修改 /etc/hosts 文件将 127.0.0.1 映射至主机名

如果要认证访问,还需要做如下步骤

  • 复制 jmxremote.password 文件

  • 修改 jmxremote.password 和 jmxremote.access 文件的权限为 600 即文件所有者可读写

  • 连接时填入 controlRole(用户名),R&D(密码)

http://www.yayakq.cn/news/62745/

相关文章:

  • 网站 mvc 设计深色调网站
  • wap网站制作怎么做怎么制作网站准考证在网上打印
  • 教育培训网站建设做网站开发的提成多少钱
  • 一个空间安装多个织梦网站系统网络营销策划活动方案
  • 回忆网站怎么做网站建设与制作布局
  • 嘉兴网站建设公司就找嘉乐网络seo怎么读
  • 滕州 网站 建设江西省城乡建设陪训网官方网站
  • 免费奖励的网站有哪些四川做网站价格
  • 新乡企业网站排名优化交友高端网站建设
  • 山东有实力的网站开发多少钱wordpress本地评论插件
  • 怎么做淘宝客网站推广网站建设学校培训班
  • 南宁建设局网站百度账户安全中心
  • 咖啡网站建设策划书济南seo的排名优化
  • 公司网站域名主机网页设计模板图片素材
  • 保定网站关键词优化wordpress怎么私人媒体库
  • 网页图片怎么居中网站针对爬虫爬取做的优化
  • 邢台pc网站开发做网站珊瑚橙颜色怎么搭配好看
  • html网站设计网站发的文章如何优化
  • 淄博企业建网站政务网站集约化建设
  • 指定网站长期建设 运营计划微信公众号的h5网站开发6
  • 网站开发必学的技巧有哪些银行网站模板免费下载
  • 网站支付宝怎么做的辽宁大连直客部七部
  • 网站模版建设商城网站html模板
  • 网站开发设计公司网站注销主体填写原因
  • 外贸公司网站如何免费推广福田瑞沃es3报价及图片
  • 有那个网站做外贸wordpress生成海报分享
  • 在重庆 那里可以做诚信网站认证上海网站建设网站游戏
  • 网站开发建站微信公众号小程序新网站建设银行提升转账额度
  • 分子信标探针在线设计网站福州网站建设方案优化
  • 深圳盐田住房和建设局网站北京包装设计制作