首页 > 其他分享 >多线程知识

多线程知识

时间:2022-08-25 22:46:17浏览次数:43  
标签:run Thread 一个 知识 System 线程 println 多线程

一、线程概述:

  线程可以说是一个应用程序或者说是一个软件;线程是一个进程中的场景(进程好比一个公司,线程好比公司里的员工)

二、进程与线程的关系

  一个进程可以创建多个线程;线程是单独的不共享资源;

  线程中的堆内存和方法区内存是共享的;但是栈内存是独立的,一个线程是一个栈;

  栈之间互不打扰,各自执行各自的,这就是多线程并发

三、实现线程的方法:

  第1种方法:编写一个类,直接继承java.lang.Thread;重写run()方法  

  //创建一个分支对象
MyThread myThread = new MyThread();
// myThread.run();//此方法是普通调用,不会开辟新的栈空间,不会启动线程;(单线程)
//启动线程:start();
//start()的作用:启动一个分支程序,在jvm中开辟一个新的空间;
// * 这段代码任务完成后,瞬间就结束,线程就启动成功;这段代码目的是开辟出一个新的栈空间;
myThread.start();//会启动线程
for (int i = 0; i <20 ; i++) {
System.out.println("主线程-----"+i);
}
//定义一个类:class MyThread extends Thread{
    @Override
public void run() {
//编写程序,这个程序运行在分支栈中
for (int i = 0; i < 100; i++) {
System.out.println("分支线程----"+i);
}
}
第二种方法:直接编写一个类,实现Runnable接口,实现run()方法
   //创建一个可运行类的对象
MyRunnable runnable = new MyRunnable();
//将可运行的对象封装成一个线程对象
Thread thread = new Thread(runnable);
//启动线程
thread.start();
for (int i = 0; i < 100; i++) {
System.out.println("主线程-----"+i);
}
}
}
//编写一个类;注意该类只是一个可运行的线程类,还不是一个线程
//分支线程;
class MyRunnable implements Runnable{
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("分支线程-----"+i);
}
}
 

标签:run,Thread,一个,知识,System,线程,println,多线程
From: https://www.cnblogs.com/nzm-2019/p/16626012.html

相关文章

  • JavaScript知识-函数基础知识、匿名函数、闭包函数、箭头函数、js内置对象和方法
    目录JavaScript函数1.函数的语法格式2.无参函数3.有参函数4.关键字arguments5.函数返回值关键字return6.匿名函数(没有函数名)7.箭头函数8.函数的全局变量与局部变量9.闭包......
  • CSP基础知识(汇总)
    目录linux基础命令进制转换排序算法原码、补码、反码、计算运算符linux基础命令ls--查看当前目录下所有文件cd--切换目录cp--复制文件mv--移动文件touch--建立新......
  • 使用git的知识积累
    1、当你使用gitUI来拉取项目的时候,在目标路径下,一定要放没有的路基。比如D:\\gitproject\xxxProject一定要是不存在的,如果在电脑中已存在则会报错......
  • 生活中有哪些必备的知识技能需要了解? 黄海
    如何更好地处理拖延症的方法。利用帕金森定律来管理你的时间留给你的时间越多,你做一样事情就会倾向于慢慢完成。这就是为什么当你只剩下最后5分钟的时候,你的工作效率......
  • redis基础知识
    1、redisjedis客户端pipeline中可以传入function或consumer,里面可以写多条语句2、redis客户端setnx:key不存在时才set,存在时则忽略3、redis数据类型:hash数据类型:即键......
  • VUE 基础知识总结
    VUE的介绍VUE的导包<!DOCTYPEhtml><html><head><metacharset="utf-8"><title></title><!--开发环境版本--><scriptsrc="https://cdn.jsdel......
  • http与https 相关知识
    ###http基础知识http超文本传输协议明文无状态的==无状态==没有记忆的,每一个请求发生时都不需要去回忆过去的请求产生了什么样的记忆,也没办法创造新的记忆去影响......
  • JavaScript知识-简介、语言规范、语言基础
    目录JavaScript简介1.ECMAScript和JavaScript的关系2.JavaScript语言3.HTML、CSS、JavaScriptJavaScript基础之语言规范1.如何使用?2.注释3.结束符JavaScript语言基础1.Java......
  • 前端知识之CSS(3)-盒子模型、浮动布局、溢出属性、定位、脱离文档流、z-index之模态框
    目录盒子模型浮动布局(float)1.什么是浮动2.浮动的作用3.浮动有俩个特点4.浮动(float)格式5.浮动会造成父标签塌陷这是一个不好的现象因为会引起歧义6.解决父标签塌陷问题溢......
  • 今日内容之 CSS盒子模型和JS基础知识数据类型
    CSS盒子模型所有的标签都可以看成是一个快递盒1.margin(外边距):标签之间的距离            两个快递盒之间的距离2.border(边框):标签的边框 ......