day11 线程

进程:是一个正在这行中的进程。
    每一个进程执行都有一个执行顺序。该顺序是一个执行路径,或者叫一个控制单元。
线程:就是进程中的一个独立的控制单元。
    线程在控制者进程的执行。
    
一个进程中至少有一个线程。

java vm 启动的时候会有一个进程java.exe。
该进程中至少有一个线程负责java程序的执行。
而且这个线程运行代码存在于main方法中
该线程称之为主线程。

扩展:其实更细节说明jvm,jvm启动不至一个线程,还有负责垃圾回收机制的线程。

1,如何在自定义的代码中,定义一个线程。

通过API的查找,java已经提供了对线程这类事物的描述。就是Thread类。

创建线程的第一种方法:继承Therad类。

步骤:
1,定义类继承thread
2,复写thread类中的run方法
3,调用线程的start方法、该方法有两个作用:启动线程,调用run方法、

发现运行结果每一次都不同、
因为多个线程都获取cpu执行权,cpu执行到谁,谁就运行。
明确一点在某一个时刻,只能有一个程序在运行。(多核除外)
cpu在做着快速的切换,以达到看上去是同时运行的效果。
我们可以形象吧多线程的运行行为在互相抢夺cpu的执行权。

这就是多线程的一个特性:随机性。 谁抢到谁执行,至于执行多长,cpu说了算。

自定义一个线程

class  Demo extends   Thread
{
    public void run()
    {
        for(int i=0;i<60;i++)
        System.out.println("demo run---"+i);
    }
}

class ThreadDemo
{
    public static void main(String[] args)
    {
        Demo d = new Demo();//创建好一个线程;
        d.start();//启动线程,调用run方法、
        for(int i=0;i<60;i++)
        System.out.println("run -- "+i);
    }
}
时间: 2024-11-02 11:26:17

day11 线程的相关文章

python_way day11 线程池

python_way day11 线程池 为什么需要线程池 线程多一些固然好,但是过多的线程反倒影响系统的负荷,所以我们就需要创建合适多的线程,哪我们把线程放到哪里?这时就放到线程池中. 线程池中存放着固定数量的线程池,谁需要使用线程,就从这个容器中取.取空了就要等待,什么时候有什么时候拿去用 但是python中没有给线程池提供比较好的方法,所以我们要自己写,或者使用第三方模块 import threading import queue import time class Mythreadpol

python学习笔记-Day11 (线程、进程、queue队列、生产消费模型、携程)

线程使用 ###方式一 import threading def f1(arg): print(arg) t = threading.Thread(target=f1, args=(123,)) t.start() # start会调用run方法执行 # t是threading.Thread类的一个对象 # t.start()就会以线程的方式执行函数,可以使用pycharm ctrl选择start方法 # 找到Thread类的start方法,在start方法的注释中就已经写明,会去调用run()

Python基础—线程、进程和协程

今天已是学习Python的第十一天,来干一碗鸡汤继续今天的内容,今天的鸡汤是:超越别人对你的期望.本篇博客主要介绍以下几点内容: 线程的基本使用: 线程的锁机制: 生产者消费之模型(队列): 如何自定义线程池: 进程的基本使用: 进程的锁机制: 进程之间如何实现数据共享: 进程池: 协程的基本使用. 一.线程 1.创建线程 上篇博客已经介绍过如何创建多线程的程序,在这里在复习一下如何创建线程过程以及线程的一些方法: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1

各科基础详实

一. Java基础部分 1. JAVA的基本数据类型有哪些 ?  String 是不是基本数据类型 ? 2. 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 3. Java有没有goto? 7 4. 说说&和&&的区别. 7 5. 在JAVA中如何跳出当前的多重嵌套循环? 7 6. switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 8 7. short s1 = 1; s1 = s1 + 1;有什么

【Python之路Day11】网络篇之线程、进程、协程

目录: 基本概念 线程 进程 协程  一. 基本概念 现在的操作系统,如Unix.Linux.Windows.Mac OS X等,都是支持“多任务”的操作系统. 什么叫”多任务“呢?简单理解,就是我们可以一般上网浏览某车之家的网页,看看喜欢的车型信息:一边打开某易云音乐听听好歌:一边打开某软件股市行情图,不安的盯着曲线图...卧槽,又尼玛跌了!  这就是多任务喽. 多核心的CPU已经很普及了,但是,就是在过去的单核心CPU上,也可以执行多任务. PS: CPU是分时间片的,假设任务1执行0.01

day11 队列、线程、进程、协程及Python使用缓存(redis/memcache)

上篇博客简单介绍了多进程和多线程分别是什么,及分别使用于那种场景. 这里再稍微聊聊线程和进程相关的东西以及协程 一.队列 import queue import threading # queue.Queue,先进先出队列 # queue.LifoQueue,后进先出队列 # queue.PriorityQueue,优先级队列 # queue.deque,双向对队 # queue.Queue(2) 先进先出队列 # put放数据,是否阻塞,阻塞时的超时时间 # get取数据(默认阻塞),是否阻塞

python_way ,day11 进程

if __name__ == '__main__': for i in range(10): p = Process(target=foo, args=(i,)) # p.daemon = True #主线程默认等子线程,写上这段就不等了 p.start() print("123") print("123") print("123") p.join() #主线程运行到这里等待所有的子线程,等某一个子线程完成了,再执行下一个进程. python_w

传智播客 刘意_2015年Java基础视频-深入浅出精华版 笔记(day11~)(2016年2月3日16:01:00)

day11 1.Eclipse的基本使用 编译: 自动编译,在保存的那一刻(ctrl+s)帮你做好了(class文件出现在bin目录下) 2.Hierarchy 显示Java继承层次结构,选中类后F4 3.eclipse行号的显示与隐藏 4.D:字体大小及颜色 a:Java代码区域的字体大小和颜色: window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java修改 -- Java Edit Text Font

Java四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor

介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用.本文是基础篇,后面会分享下线程池一些高级功能. 1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? Java new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } }).start(); 1 2 3 4 5 6 7 new Thread(new