volatile java语言 volatile:Java并发中的定海神针,轻量级却直击痛点
于其中, 那双重检查锁运用到了关键字, 此篇文章会引领大家深入去了解一下相关方面的知识。简介它是由Java所供应的一种具备轻量级特点的同步机制, 于并发编程范畴里起着相对比较重要的作用。相较于别的, 它具有更为轻量级的特性。示例说明首先我们先来看一段代码package com.secbro2.others.testVolatile; /** * author zzs */ public class TestVolatile { private static boolean status false; public static void main(String[] args) throws InterruptedException { new Thread(() - { while (!status) { } }).start(); Thread.sleep(100L); status true; System.out.println(status is status); } }一个实体类, 它含有一个属性, 该属性的默认值是false, 在main方法里启动一个线程, 在线程里头当属性变为true时就停止, 当属性为false时就持续执行, 接着线程睡眠100毫秒, 随后把属性改为true, 并且打印修改之后的状况, 那么, 线程里的while方法在这个时候会不会也跟着结束掉呢? 答案是不会的当运行此端代码之际, 我们能够发觉, 尽管已然打印出“ is true”, 可是线程并未终止, 始终在运行。这究竟是因何缘故呢?内存可见性若处于单线程里, 上述所举的例子, 那儿的业务逻辑必然会与我们预先期待的结果保持一致。然而在多线程模型下。共享变量于各个线程之际是“无法看见的”。所谓可被视物之特性, 乃有一线程对共享变量作出更改后, 更改之后呈现之值于其他线程而言能够即刻获取, 此即线程相互间之可被视物之特性。上述示例恰因未达成线程相互间之可被视物之特性, 所以于主线程之上更改了值, 然另一个线程却未曾获取到, 故而持续反复执行。Java内存模型Java虚拟机的内存模型, 也就是号称Java Model的JMM, 它能够决定线程针对共享变量所做出的写入动作是否会被其他线程察觉到。JMM对存在于线程以及主线程内存之间的抽象关系予以了定义: 共享变量放置在主内存里, 也就是Man之中, 每一个线程都拥有一个属于自身的私有本地内存, 即Local, 本地内存留存着该线程所用到的主内存的副本拷贝, 线程针对变量展开的所有操作都必须于工作内存内开展, 而绝对不可以径直对主内存的变量进行读写。运用和Lock能够处理线程同步的问题, 只不过面对上面提及的问题运用它们太过重量级了。这时的作用凸显出来了, 在修饰变量之后会有如下作用: - 当对一个变量进行写入操作时, JMM会将该线程相应的本地缓存里面的变量强行刷新到主内存当中去 - 写操作会致使其他线程里的缓存变为无效。修改过后的变量为package com.secbro2.others.testVolatile; /** * author zzs */ public class TestVolatile { private static volatile boolean status false; public static void main(String[] args) throws InterruptedException { new Thread(() - { while (!status) { } }).start(); Thread.sleep(100L); status true; System.out.println(status is status); } }此时再执行程序会发现当被修改之后程序马上停止了。是否能够保持原子性多线程的另外一个问题, 是原子性操作, 当一个操作并非原子性的时候, 那么要是多线程同时去操作, 就极有可能会引发并发问题。首先, 来看一个示例。package com.secbro2.others.testVolatile; /** * author zzs */ public class Counter { private volatile int inc 0; private void increase() { inc; } public static void main(String[] args) throws InterruptedException { Counter counter new Counter(); for (int i 0; i 10; i) { new Thread(() - { for (int j 0; j 1000; j) { counter.increase(); } }).start(); } Thread.sleep(3000L); System.out.println(counter.inc); } }执行结果为6847执行结果并非预期之中的10000 , 这也就表明, 虽说能够确保可见性, 然而却无法确保原子性。可见性是能够得到保证的, 每个线程每一次读取到的值均为最新值, 可是读取之后再进行操作就难以保证了。就比如说上面所举的例子, inc的自身递增操作涵盖了三步: 读取inc的值, 实施加1操作, 写入工作内存, 这也就意味着inc的自增操作并不是原子性的。对上面的代码进行修改使用关键字即可保证线程的安全package com.secbro2.others.testVolatile; /** * author zzs */ public class Counter { private volatile int inc 0; private synchronized void increase() { inc; } public static void main(String[] args) throws InterruptedException { Counter counter new Counter(); for (int i 0; i 10; i) { new Thread(() - { for (int j 0; j 1000; j) { counter.increase(); } }).start(); } Thread.sleep(3000L); System.out.println(counter.inc); } }输出的结果为何是预期之中的10000 , 当然了, 可以用来保障递增的原子性, 此处不再进行关于此的举例说明。是否可以保证有序性处理器为了提升程序运行效率, 或许会对输入代码予以优化, 它并不确保程序里边各个语句的执行前后顺序跟代码中的顺序相同, 然而它会确保程序最终的执行结果和代码依序执行的结果是一样的int a 10; //语句1 int r 2; //语句2 a a 3; //语句3 r a*a; //语句4比如说像上面所提到的代码, 其所具备的可以出现的执行顺序是这样的: 先是语句2, 接着是语句1, 然后是语句3, 随后是语句4, 然而绝对不会呈现为这样的顺序先是语句2, 接着是语句1, 之后是语句4, 再之后是语句3。关键字还能禁止指令的重排序所以能在一定程序上保证有序性。关键字禁止指令重排序有两层意思具体示例在将单例模式的双重检查锁中已经讲到实现代码如下:package com.secbro2.gof23.singleton; /** * Singleton Patterns ** Double checked lock and volatile; * * author zzs */ public class SingletonThreadSafe2 { private static volatile SingletonThreadSafe2 instance; private SingletonThreadSafe2() {} public static SingletonThreadSafe2 getInstance() { if (instance null) { synchronized (SingletonThreadSafe2.class) { if (instance null) { instance new SingletonThreadSafe2(); } } } return instance; } public void helloSingleton() { System.out.println(Hello SingletonThreadSafe1!); } }小结通过上面所进行的那番讲解, 我们所知悉地了解着的基本作用以及示例, 它的应用方面的场景诸如状态标记量还有双重检查。然而我们得要清楚明白的是, 其能够解决一部分线程并发的相关问题, 但是它并不能够如同那般真正切实地达成同步锁指向的目的。ShAre.rEaD.MnSte.CoM/Article/details/411275.sHtMLShAre.rEaD.MnSte.CoM/Article/details/557307.sHtMLShAre.rEaD.MnSte.CoM/Article/details/722712.sHtMLShAre.rEaD.MnSte.CoM/Article/details/647108.sHtMLShAre.rEaD.MnSte.CoM/Article/details/131861.sHtMLShAre.rEaD.MnSte.CoM/Article/details/952269.sHtMLShAre.rEaD.MnSte.CoM/Article/details/948111.sHtMLShAre.rEaD.MnSte.CoM/Article/details/824731.sHtMLShAre.rEaD.MnSte.CoM/Article/details/757178.sHtMLShAre.rEaD.MnSte.CoM/Article/details/976336.sHtMLShAre.rEaD.MnSte.CoM/Article/details/947988.sHtMLShAre.rEaD.MnSte.CoM/Article/details/136475.sHtMLShAre.rEaD.MnSte.CoM/Article/details/142024.sHtMLShAre.rEaD.MnSte.CoM/Article/details/470741.sHtMLShAre.rEaD.MnSte.CoM/Article/details/098948.sHtMLShAre.rEaD.MnSte.CoM/Article/details/804121.sHtMLShAre.rEaD.MnSte.CoM/Article/details/537947.sHtMLShAre.rEaD.MnSte.CoM/Article/details/789253.sHtMLShAre.rEaD.MnSte.CoM/Article/details/921234.sHtMLShAre.rEaD.MnSte.CoM/Article/details/258082.sHtMLShAre.rEaD.MnSte.CoM/Article/details/235717.sHtMLShAre.rEaD.MnSte.CoM/Article/details/020264.sHtMLShAre.rEaD.MnSte.CoM/Article/details/205084.sHtMLShAre.rEaD.MnSte.CoM/Article/details/560507.sHtMLShAre.rEaD.MnSte.CoM/Article/details/394968.sHtMLShAre.rEaD.MnSte.CoM/Article/details/006419.sHtMLShAre.rEaD.MnSte.CoM/Article/details/323462.sHtMLShAre.rEaD.MnSte.CoM/Article/details/859730.sHtMLShAre.rEaD.MnSte.CoM/Article/details/344115.sHtMLShAre.rEaD.MnSte.CoM/Article/details/776488.sHtMLShAre.rEaD.MnSte.CoM/Article/details/928736.sHtMLShAre.rEaD.MnSte.CoM/Article/details/983763.sHtMLShAre.rEaD.MnSte.CoM/Article/details/816734.sHtMLShAre.rEaD.MnSte.CoM/Article/details/102534.sHtMLShAre.rEaD.MnSte.CoM/Article/details/939415.sHtMLShAre.rEaD.MnSte.CoM/Article/details/242936.sHtMLShAre.rEaD.MnSte.CoM/Article/details/243765.sHtMLShAre.rEaD.MnSte.CoM/Article/details/844341.sHtMLShAre.rEaD.MnSte.CoM/Article/details/422395.sHtMLShAre.rEaD.MnSte.CoM/Article/details/258044.sHtMLShAre.rEaD.MnSte.CoM/Article/details/319035.sHtMLShAre.rEaD.MnSte.CoM/Article/details/037975.sHtMLShAre.rEaD.MnSte.CoM/Article/details/022247.sHtMLShAre.rEaD.MnSte.CoM/Article/details/467316.sHtMLShAre.rEaD.MnSte.CoM/Article/details/939903.sHtMLShAre.rEaD.MnSte.CoM/Article/details/410121.sHtMLShAre.rEaD.MnSte.CoM/Article/details/852284.sHtMLShAre.rEaD.MnSte.CoM/Article/details/555424.sHtMLShAre.rEaD.MnSte.CoM/Article/details/593481.sHtMLShAre.rEaD.MnSte.CoM/Article/details/807892.sHtMLShAre.rEaD.MnSte.CoM/Article/details/863655.sHtMLShAre.rEaD.MnSte.CoM/Article/details/008276.sHtMLShAre.rEaD.MnSte.CoM/Article/details/194378.sHtMLShAre.rEaD.MnSte.CoM/Article/details/444001.sHtMLShAre.rEaD.MnSte.CoM/Article/details/421458.sHtMLShAre.rEaD.MnSte.CoM/Article/details/737027.sHtMLShAre.rEaD.MnSte.CoM/Article/details/896787.sHtMLShAre.rEaD.MnSte.CoM/Article/details/901835.sHtMLShAre.rEaD.MnSte.CoM/Article/details/810544.sHtMLShAre.rEaD.MnSte.CoM/Article/details/972338.sHtMLShAre.rEaD.MnSte.CoM/Article/details/048704.sHtMLShAre.rEaD.MnSte.CoM/Article/details/218264.sHtMLShAre.rEaD.MnSte.CoM/Article/details/451882.sHtMLShAre.rEaD.MnSte.CoM/Article/details/695775.sHtMLShAre.rEaD.MnSte.CoM/Article/details/883058.sHtMLShAre.rEaD.MnSte.CoM/Article/details/905604.sHtMLShAre.rEaD.MnSte.CoM/Article/details/077010.sHtMLShAre.rEaD.MnSte.CoM/Article/details/535126.sHtMLShAre.rEaD.MnSte.CoM/Article/details/945037.sHtMLShAre.rEaD.MnSte.CoM/Article/details/062158.sHtMLShAre.rEaD.MnSte.CoM/Article/details/648008.sHtMLShAre.rEaD.MnSte.CoM/Article/details/804146.sHtMLShAre.rEaD.MnSte.CoM/Article/details/293249.sHtMLShAre.rEaD.MnSte.CoM/Article/details/996965.sHtMLShAre.rEaD.MnSte.CoM/Article/details/045701.sHtMLShAre.rEaD.MnSte.CoM/Article/details/190541.sHtMLShAre.rEaD.MnSte.CoM/Article/details/714988.sHtMLShAre.rEaD.MnSte.CoM/Article/details/747645.sHtMLShAre.rEaD.MnSte.CoM/Article/details/868251.sHtMLShAre.rEaD.MnSte.CoM/Article/details/848340.sHtMLShAre.rEaD.MnSte.CoM/Article/details/049765.sHtMLShAre.rEaD.MnSte.CoM/Article/details/090066.sHtMLShAre.rEaD.MnSte.CoM/Article/details/772307.sHtMLShAre.rEaD.MnSte.CoM/Article/details/367835.sHtMLShAre.rEaD.MnSte.CoM/Article/details/048805.sHtMLShAre.rEaD.MnSte.CoM/Article/details/980331.sHtMLShAre.rEaD.MnSte.CoM/Article/details/456858.sHtMLShAre.rEaD.MnSte.CoM/Article/details/874589.sHtMLShAre.rEaD.MnSte.CoM/Article/details/695479.sHtMLShAre.rEaD.MnSte.CoM/Article/details/595526.sHtMLShAre.rEaD.MnSte.CoM/Article/details/131869.sHtMLShAre.rEaD.MnSte.CoM/Article/details/528936.sHtMLShAre.rEaD.MnSte.CoM/Article/details/288435.sHtMLShAre.rEaD.MnSte.CoM/Article/details/067739.sHtMLShAre.rEaD.MnSte.CoM/Article/details/714998.sHtMLShAre.rEaD.MnSte.CoM/Article/details/665054.sHtMLShAre.rEaD.MnSte.CoM/Article/details/487744.sHtMLShAre.rEaD.MnSte.CoM/Article/details/315010.sHtMLShAre.rEaD.MnSte.CoM/Article/details/640240.sHtMLShAre.rEaD.MnSte.CoM/Article/details/992830.sHtMLShAre.rEaD.MnSte.CoM/Article/details/132645.sHtMLShAre.rEaD.MnSte.CoM/Article/details/569049.sHtMLShAre.rEaD.MnSte.CoM/Article/details/076959.sHtMLShAre.rEaD.MnSte.CoM/Article/details/772764.sHtMLShAre.rEaD.MnSte.CoM/Article/details/552368.sHtMLShAre.rEaD.MnSte.CoM/Article/details/422508.sHtMLShAre.rEaD.MnSte.CoM/Article/details/179461.sHtMLShAre.rEaD.MnSte.CoM/Article/details/535475.sHtMLShAre.rEaD.MnSte.CoM/Article/details/006984.sHtMLShAre.rEaD.MnSte.CoM/Article/details/133588.sHtMLShAre.rEaD.MnSte.CoM/Article/details/621549.sHtMLShAre.rEaD.MnSte.CoM/Article/details/205408.sHtMLShAre.rEaD.MnSte.CoM/Article/details/849115.sHtMLShAre.rEaD.MnSte.CoM/Article/details/275771.sHtMLShAre.rEaD.MnSte.CoM/Article/details/081703.sHtMLShAre.rEaD.MnSte.CoM/Article/details/498617.sHtMLShAre.rEaD.MnSte.CoM/Article/details/102614.sHtMLShAre.rEaD.MnSte.CoM/Article/details/370226.sHtMLShAre.rEaD.MnSte.CoM/Article/details/114363.sHtMLShAre.rEaD.MnSte.CoM/Article/details/110761.sHtMLShAre.rEaD.MnSte.CoM/Article/details/092389.sHtMLShAre.rEaD.MnSte.CoM/Article/details/873778.sHtMLShAre.rEaD.MnSte.CoM/Article/details/691779.sHtMLShAre.rEaD.MnSte.CoM/Article/details/610672.sHtMLShAre.rEaD.MnSte.CoM/Article/details/497659.sHtMLShAre.rEaD.MnSte.CoM/Article/details/202090.sHtMLShAre.rEaD.MnSte.CoM/Article/details/740270.sHtMLShAre.rEaD.MnSte.CoM/Article/details/833593.sHtMLShAre.rEaD.MnSte.CoM/Article/details/324618.sHtMLShAre.rEaD.MnSte.CoM/Article/details/812742.sHtMLShAre.rEaD.MnSte.CoM/Article/details/966751.sHtMLShAre.rEaD.MnSte.CoM/Article/details/367498.sHtMLShAre.rEaD.MnSte.CoM/Article/details/425506.sHtMLShAre.rEaD.MnSte.CoM/Article/details/109031.sHtMLShAre.rEaD.MnSte.CoM/Article/details/215958.sHtMLShAre.rEaD.MnSte.CoM/Article/details/103254.sHtMLShAre.rEaD.MnSte.CoM/Article/details/271095.sHtMLShAre.rEaD.MnSte.CoM/Article/details/121043.sHtMLShAre.rEaD.MnSte.CoM/Article/details/033795.sHtMLShAre.rEaD.MnSte.CoM/Article/details/504725.sHtMLShAre.rEaD.MnSte.CoM/Article/details/606299.sHtMLShAre.rEaD.MnSte.CoM/Article/details/849548.sHtMLShAre.rEaD.MnSte.CoM/Article/details/325555.sHtMLShAre.rEaD.MnSte.CoM/Article/details/795044.sHtMLShAre.rEaD.MnSte.CoM/Article/details/899011.sHtMLShAre.rEaD.MnSte.CoM/Article/details/561138.sHtMLShAre.rEaD.MnSte.CoM/Article/details/399544.sHtMLShAre.rEaD.MnSte.CoM/Article/details/281175.sHtMLShAre.rEaD.MnSte.CoM/Article/details/723258.sHtMLShAre.rEaD.MnSte.CoM/Article/details/180974.sHtMLShAre.rEaD.MnSte.CoM/Article/details/093196.sHtMLShAre.rEaD.MnSte.CoM/Article/details/871744.sHtMLShAre.rEaD.MnSte.CoM/Article/details/738128.sHtMLShAre.rEaD.MnSte.CoM/Article/details/184293.sHtMLShAre.rEaD.MnSte.CoM/Article/details/109485.sHtMLShAre.rEaD.MnSte.CoM/Article/details/216009.sHtMLShAre.rEaD.MnSte.CoM/Article/details/972780.sHtMLShAre.rEaD.MnSte.CoM/Article/details/608013.sHtMLShAre.rEaD.MnSte.CoM/Article/details/659686.sHtMLShAre.rEaD.MnSte.CoM/Article/details/714172.sHtMLShAre.rEaD.MnSte.CoM/Article/details/479351.sHtMLShAre.rEaD.MnSte.CoM/Article/details/331494.sHtMLShAre.rEaD.MnSte.CoM/Article/details/438385.sHtMLShAre.rEaD.MnSte.CoM/Article/details/949085.sHtMLShAre.rEaD.MnSte.CoM/Article/details/281399.sHtMLShAre.rEaD.MnSte.CoM/Article/details/049096.sHtMLShAre.rEaD.MnSte.CoM/Article/details/954285.sHtMLShAre.rEaD.MnSte.CoM/Article/details/422438.sHtMLShAre.rEaD.MnSte.CoM/Article/details/729825.sHtMLShAre.rEaD.MnSte.CoM/Article/details/992252.sHtMLShAre.rEaD.MnSte.CoM/Article/details/162244.sHtMLShAre.rEaD.MnSte.CoM/Article/details/843786.sHtMLShAre.rEaD.MnSte.CoM/Article/details/089806.sHtMLShAre.rEaD.MnSte.CoM/Article/details/075053.sHtMLShAre.rEaD.MnSte.CoM/Article/details/872067.sHtMLShAre.rEaD.MnSte.CoM/Article/details/701563.sHtMLShAre.rEaD.MnSte.CoM/Article/details/676039.sHtMLShAre.rEaD.MnSte.CoM/Article/details/523585.sHtMLShAre.rEaD.MnSte.CoM/Article/details/811220.sHtMLShAre.rEaD.MnSte.CoM/Article/details/728033.sHtMLShAre.rEaD.MnSte.CoM/Article/details/417957.sHtMLShAre.rEaD.MnSte.CoM/Article/details/661153.sHtMLShAre.rEaD.MnSte.CoM/Article/details/916211.sHtMLShAre.rEaD.MnSte.CoM/Article/details/509874.sHtMLShAre.rEaD.MnSte.CoM/Article/details/360982.sHtMLShAre.rEaD.MnSte.CoM/Article/details/568827.sHtMLShAre.rEaD.MnSte.CoM/Article/details/921508.sHtMLShAre.rEaD.MnSte.CoM/Article/details/855283.sHtMLShAre.rEaD.MnSte.CoM/Article/details/376112.sHtMLShAre.rEaD.MnSte.CoM/Article/details/048835.sHtMLShAre.rEaD.MnSte.CoM/Article/details/568670.sHtMLShAre.rEaD.MnSte.CoM/Article/details/863550.sHtMLShAre.rEaD.MnSte.CoM/Article/details/182866.sHtMLShAre.rEaD.MnSte.CoM/Article/details/721504.sHtMLShAre.rEaD.MnSte.CoM/Article/details/849924.sHtMLShAre.rEaD.MnSte.CoM/Article/details/631927.sHtMLShAre.rEaD.MnSte.CoM/Article/details/250551.sHtMLShAre.rEaD.MnSte.CoM/Article/details/488964.sHtMLShAre.rEaD.MnSte.CoM/Article/details/141657.sHtMLShAre.rEaD.MnSte.CoM/Article/details/581564.sHtMLShAre.rEaD.MnSte.CoM/Article/details/827016.sHtMLShAre.rEaD.MnSte.CoM/Article/details/876196.sHtMLShAre.rEaD.MnSte.CoM/Article/details/135505.sHtMLShAre.rEaD.MnSte.CoM/Article/details/659978.sHtMLShAre.rEaD.MnSte.CoM/Article/details/909815.sHtMLShAre.rEaD.MnSte.CoM/Article/details/990396.sHtMLShAre.rEaD.MnSte.CoM/Article/details/827628.sHtMLShAre.rEaD.MnSte.CoM/Article/details/059186.sHtMLShAre.rEaD.MnSte.CoM/Article/details/243893.sHtMLShAre.rEaD.MnSte.CoM/Article/details/640071.sHtMLShAre.rEaD.MnSte.CoM/Article/details/624558.sHtMLShAre.rEaD.MnSte.CoM/Article/details/559619.sHtMLShAre.rEaD.MnSte.CoM/Article/details/829420.sHtMLShAre.rEaD.MnSte.CoM/Article/details/372456.sHtMLShAre.rEaD.MnSte.CoM/Article/details/701323.sHtMLShAre.rEaD.MnSte.CoM/Article/details/128609.sHtMLShAre.rEaD.MnSte.CoM/Article/details/207204.sHtMLShAre.rEaD.MnSte.CoM/Article/details/492656.sHtMLShAre.rEaD.MnSte.CoM/Article/details/946034.sHtMLShAre.rEaD.MnSte.CoM/Article/details/711146.sHtMLShAre.rEaD.MnSte.CoM/Article/details/387525.sHtMLShAre.rEaD.MnSte.CoM/Article/details/900132.sHtMLShAre.rEaD.MnSte.CoM/Article/details/695239.sHtMLShAre.rEaD.MnSte.CoM/Article/details/901548.sHtMLShAre.rEaD.MnSte.CoM/Article/details/399566.sHtMLShAre.rEaD.MnSte.CoM/Article/details/413965.sHtMLShAre.rEaD.MnSte.CoM/Article/details/426214.sHtMLShAre.rEaD.MnSte.CoM/Article/details/006338.sHtMLShAre.rEaD.MnSte.CoM/Article/details/410041.sHtMLShAre.rEaD.MnSte.CoM/Article/details/791314.sHtMLShAre.rEaD.MnSte.CoM/Article/details/625211.sHtMLShAre.rEaD.MnSte.CoM/Article/details/044459.sHtMLShAre.rEaD.MnSte.CoM/Article/details/177368.sHtMLShAre.rEaD.MnSte.CoM/Article/details/626029.sHtMLShAre.rEaD.MnSte.CoM/Article/details/703744.sHtMLShAre.rEaD.MnSte.CoM/Article/details/856720.sHtMLShAre.rEaD.MnSte.CoM/Article/details/066060.sHtMLShAre.rEaD.MnSte.CoM/Article/details/054030.sHtMLShAre.rEaD.MnSte.CoM/Article/details/888199.sHtMLShAre.rEaD.MnSte.CoM/Article/details/456191.sHtMLShAre.rEaD.MnSte.CoM/Article/details/746027.sHtMLShAre.rEaD.MnSte.CoM/Article/details/925409.sHtMLShAre.rEaD.MnSte.CoM/Article/details/037279.sHtMLShAre.rEaD.MnSte.CoM/Article/details/994096.sHtMLShAre.rEaD.MnSte.CoM/Article/details/542511.sHtMLShAre.rEaD.MnSte.CoM/Article/details/185957.sHtMLShAre.rEaD.MnSte.CoM/Article/details/503063.sHtMLShAre.rEaD.MnSte.CoM/Article/details/644619.sHtMLShAre.rEaD.MnSte.CoM/Article/details/093806.sHtMLShAre.rEaD.MnSte.CoM/Article/details/543558.sHtMLShAre.rEaD.MnSte.CoM/Article/details/709941.sHtMLShAre.rEaD.MnSte.CoM/Article/details/489732.sHtMLShAre.rEaD.MnSte.CoM/Article/details/863535.sHtMLShAre.rEaD.MnSte.CoM/Article/details/924772.sHtMLShAre.rEaD.MnSte.CoM/Article/details/844394.sHtMLShAre.rEaD.MnSte.CoM/Article/details/826493.sHtMLShAre.rEaD.MnSte.CoM/Article/details/051155.sHtMLShAre.rEaD.MnSte.CoM/Article/details/448735.sHtMLShAre.rEaD.MnSte.CoM/Article/details/947761.sHtMLShAre.rEaD.MnSte.CoM/Article/details/993507.sHtMLShAre.rEaD.MnSte.CoM/Article/details/794350.sHtMLShAre.rEaD.MnSte.CoM/Article/details/579306.sHtMLShAre.rEaD.MnSte.CoM/Article/details/871755.sHtMLShAre.rEaD.MnSte.CoM/Article/details/250769.sHtMLShAre.rEaD.MnSte.CoM/Article/details/588511.sHtMLShAre.rEaD.MnSte.CoM/Article/details/358360.sHtMLShAre.rEaD.MnSte.CoM/Article/details/645700.sHtMLShAre.rEaD.MnSte.CoM/Article/details/974587.sHtMLShAre.rEaD.MnSte.CoM/Article/details/490391.sHtMLShAre.rEaD.MnSte.CoM/Article/details/553219.sHtMLShAre.rEaD.MnSte.CoM/Article/details/636251.sHtMLShAre.rEaD.MnSte.CoM/Article/details/304099.sHtMLShAre.rEaD.MnSte.CoM/Article/details/260558.sHtMLShAre.rEaD.MnSte.CoM/Article/details/308769.sHtMLShAre.rEaD.MnSte.CoM/Article/details/640075.sHtMLShAre.rEaD.MnSte.CoM/Article/details/065524.sHtMLShAre.rEaD.MnSte.CoM/Article/details/457336.sHtMLShAre.rEaD.MnSte.CoM/Article/details/231344.sHtMLShAre.rEaD.MnSte.CoM/Article/details/174093.sHtMLShAre.rEaD.MnSte.CoM/Article/details/372581.sHtMLShAre.rEaD.MnSte.CoM/Article/details/196860.sHtMLShAre.rEaD.MnSte.CoM/Article/details/590437.sHtMLShAre.rEaD.MnSte.CoM/Article/details/948235.sHtMLShAre.rEaD.MnSte.CoM/Article/details/573852.sHtMLShAre.rEaD.MnSte.CoM/Article/details/598289.sHtMLShAre.rEaD.MnSte.CoM/Article/details/897640.sHtMLShAre.rEaD.MnSte.CoM/Article/details/761506.sHtMLShAre.rEaD.MnSte.CoM/Article/details/601355.sHtMLShAre.rEaD.MnSte.CoM/Article/details/558588.sHtMLShAre.rEaD.MnSte.CoM/Article/details/770829.sHtMLShAre.rEaD.MnSte.CoM/Article/details/701095.sHtMLShAre.rEaD.MnSte.CoM/Article/details/079125.sHtMLShAre.rEaD.MnSte.CoM/Article/details/962866.sHtMLShAre.rEaD.MnSte.CoM/Article/details/196183.sHtMLShAre.rEaD.MnSte.CoM/Article/details/741493.sHtMLShAre.rEaD.MnSte.CoM/Article/details/949557.sHtMLShAre.rEaD.MnSte.CoM/Article/details/326485.sHtMLShAre.rEaD.MnSte.CoM/Article/details/143296.sHtMLShAre.rEaD.MnSte.CoM/Article/details/567508.sHtMLShAre.rEaD.MnSte.CoM/Article/details/023554.sHtMLShAre.rEaD.MnSte.CoM/Article/details/769634.sHtMLShAre.rEaD.MnSte.CoM/Article/details/402963.sHtMLShAre.rEaD.MnSte.CoM/Article/details/356596.sHtMLShAre.rEaD.MnSte.CoM/Article/details/930566.sHtMLShAre.rEaD.MnSte.CoM/Article/details/537532.sHtMLShAre.rEaD.MnSte.CoM/Article/details/519616.sHtMLShAre.rEaD.MnSte.CoM/Article/details/878848.sHtMLShAre.rEaD.MnSte.CoM/Article/details/752840.sHtMLShAre.rEaD.MnSte.CoM/Article/details/102279.sHtMLShAre.rEaD.MnSte.CoM/Article/details/345802.sHtMLShAre.rEaD.MnSte.CoM/Article/details/093021.sHtMLShAre.rEaD.MnSte.CoM/Article/details/940464.sHtMLShAre.rEaD.MnSte.CoM/Article/details/250318.sHtMLShAre.rEaD.MnSte.CoM/Article/details/451888.sHtMLShAre.rEaD.MnSte.CoM/Article/details/425978.sHtMLShAre.rEaD.MnSte.CoM/Article/details/590992.sHtMLShAre.rEaD.MnSte.CoM/Article/details/171965.sHtMLShAre.rEaD.MnSte.CoM/Article/details/682643.sHtMLShAre.rEaD.MnSte.CoM/Article/details/977629.sHtMLShAre.rEaD.MnSte.CoM/Article/details/614517.sHtMLShAre.rEaD.MnSte.CoM/Article/details/666104.sHtMLShAre.rEaD.MnSte.CoM/Article/details/380088.sHtMLShAre.rEaD.MnSte.CoM/Article/details/385875.sHtMLShAre.rEaD.MnSte.CoM/Article/details/915875.sHtMLShAre.rEaD.MnSte.CoM/Article/details/229230.sHtMLShAre.rEaD.MnSte.CoM/Article/details/387168.sHtMLShAre.rEaD.MnSte.CoM/Article/details/006114.sHtMLShAre.rEaD.MnSte.CoM/Article/details/139544.sHtMLShAre.rEaD.MnSte.CoM/Article/details/669300.sHtMLShAre.rEaD.MnSte.CoM/Article/details/418924.sHtMLShAre.rEaD.MnSte.CoM/Article/details/750618.sHtMLShAre.rEaD.MnSte.CoM/Article/details/647088.sHtMLShAre.rEaD.MnSte.CoM/Article/details/576269.sHtMLShAre.rEaD.MnSte.CoM/Article/details/266143.sHtMLShAre.rEaD.MnSte.CoM/Article/details/864035.sHtMLShAre.rEaD.MnSte.CoM/Article/details/552678.sHtMLShAre.rEaD.MnSte.CoM/Article/details/597395.sHtMLShAre.rEaD.MnSte.CoM/Article/details/770974.sHtMLShAre.rEaD.MnSte.CoM/Article/details/995583.sHtMLShAre.rEaD.MnSte.CoM/Article/details/012471.sHtMLShAre.rEaD.MnSte.CoM/Article/details/172545.sHtMLShAre.rEaD.MnSte.CoM/Article/details/073529.sHtMLShAre.rEaD.MnSte.CoM/Article/details/104046.sHtMLShAre.rEaD.MnSte.CoM/Article/details/167147.sHtMLShAre.rEaD.MnSte.CoM/Article/details/690972.sHtMLShAre.rEaD.MnSte.CoM/Article/details/724014.sHtMLShAre.rEaD.MnSte.CoM/Article/details/117684.sHtML

相关新闻

网络安全「底层协议深度学习指南」:为什么协议学不透,永远学不会实战渗透?

网络安全「底层协议深度学习指南」:为什么协议学不透,永远学不会实战渗透?

一、前言:90%新人的最大学习误区绝大多数网络安全学习者,入门第一件事就是学漏洞、学工具、学Payload。学了半年、一年,看似会很多知识点,但是遇到真实环境依旧束手无策。根本核心原因:协议底层完全空白。所有Web漏洞、…

2026/10/16 21:54:58 阅读更多 →
告别AI瞎写代码!18万Star开源Skills仓库,8大核心技能干货详解

告别AI瞎写代码!18万Star开源Skills仓库,8大核心技能干货详解

文章目录一、GitHub现在有多离谱?纯文本仓库半年干到18万收藏1.1 跟普通写CLAUDE.md提示词根本不是一个东西二、30秒一键安装,小白也能直接上手2.1 必开初始化技能,一键适配你的项目三、八大王牌技能,每一个都能解决程序员痛点3.1…

2026/10/15 21:21:57 阅读更多 →
c++核心编程day2 - 引用

c++核心编程day2 - 引用

c核心编程day2 工具&#xff1a;vs2026 课程&#xff1a;【黑马程序员匠心之作|C教程从0到1入门编程,学习编程不再难】 2 引用 2.1 引用的基本使用 作用&#xff1a;给变量起别名语法&#xff1a;数据类型 &别名 原名程序示例&#xff1a; #include <iostream>…

2026/10/15 22:14:59 阅读更多 →

最新新闻

C++ 用 Windows API Beep 函数实现可控提示音与旋律播放

C++ 用 Windows API Beep 函数实现可控提示音与旋律播放

很多写C的朋友&#xff0c;平时在控制台里输出文本、画表格、做交互界面都轻车熟路&#xff0c;真到了想让程序“开口说话”这一步&#xff0c;反而犯了难。有人第一反应是上音频库&#xff0c;折腾FFmpeg、OpenAL一整套依赖&#xff0c;结果为了实现一个提示音&#xff0c;编译…

2026/10/16 22:00:19 阅读更多 →
Scratch外观模块说话指令详解:从基础对话到多角色时间轴编排

Scratch外观模块说话指令详解:从基础对话到多角色时间轴编排

1. 内容整体设计与思路拆解1.1 核心需求解析&#xff1a;一个“说话”积木到底能做什么如果你刚接触 Scratch&#xff0c;第一次拖动外观模块里的“说”积木&#xff0c;大概率会这么操作&#xff1a;拖一个“说 你好&#xff01; 2 秒”到角色区&#xff0c;点一下绿旗&#x…

2026/10/16 22:00:19 阅读更多 →
读懂开源项目入口文件,快速掌握代码架构与初始化流程

读懂开源项目入口文件,快速掌握代码架构与初始化流程

开源项目拿到手&#xff0c;第一件事不是跑起来&#xff0c;而是先找入口文件。这个习惯我保持了挺多年&#xff0c;尤其接触三国杀开源系列这类偏复杂的卡牌游戏项目时&#xff0c;入口文件就是整个项目的缩略图&#xff0c;能把代码架构、数据流向、功能边界一次性给你交代清…

2026/10/16 22:00:19 阅读更多 →
IE自动跳转Edge不用重装:从不设置+IE模式+批量运维全解

IE自动跳转Edge不用重装:从不设置+IE模式+批量运维全解

简介&#xff1a;资源针对微软停止IE服务后打开IE自动跳转Edge的常见问题&#xff0c;给出完整解决思路&#xff0c;面向因企事业单位业务系统、老旧网站或特定网银登录场景而仍须使用IE浏览器的办公人员、系统管理员及网站测试人员。文档以docx格式编排&#xff0c;共1个文件&…

2026/10/16 22:00:19 阅读更多 →
蓝桥杯双指针算法全解析:四大经典例题与核心套路

蓝桥杯双指针算法全解析:四大经典例题与核心套路

很多同学在备赛蓝桥杯的时候&#xff0c;一提到“双指针”三个字&#xff0c;第一反应是&#xff1a;这不就是两个下标来回挪吗&#xff1f;确实&#xff0c;双指针表面上看没什么高深理论&#xff0c;但真到了考场里&#xff0c;边界条件一出错&#xff0c;多写一个i少写一个j…

2026/10/16 22:00:19 阅读更多 →
ONVIF实战入门:30行Python代码调通摄像头

ONVIF实战入门:30行Python代码调通摄像头

1. 这不是ONVIF协议文档翻译&#xff0c;而是一份能让你当天就调通摄像头的实操手记ONVIF——1——从零到可以编程。这个标题里藏着三个关键信号&#xff1a;ONVIF是核心对象&#xff0c;1代表极简起点&#xff08;不是“第一课”&#xff0c;而是“第一步就落地”&#xff09;…

2026/10/16 21:59:18 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课&#xff0c;其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置&#xff0c;通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测&#xff0c;本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章&#xff0c;跟着敲完了投票应用&#xff0c;大概会有一种"我好像会了&#xff0c;又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型&#xff0c;下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介&#xff1a;基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码&#xff0c;面向计算机相关专业课程设计与期末大作业学生&#xff0c;以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程&#xff0c;…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程&#xff1a;键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化&#xff0c;十个新手有八个栽在"往输入框里填东西"这件事上&#xff1a;要么填不进去&#xff0c;要么填了一半&#xff0c;要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程&#xff1a;阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀&#xff1a;什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面&#xff0c;跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →