chrome,IE去除打印时的页眉页脚

使用forever启动node.js自启动脚本备份

 

java 正则匹配换行符以及非贪婪模式

[\\s\\S] 这个表示匹配换行符和非换行符

*后面的? 表示非贪婪模式(默认为贪婪模式)

Java多线程中static变量的使用https://www.cnblogs.com/kabi/p/6889546.html

https://www.cnblogs.com/kabi/p/6889546.html

 

线程,是我们项目中绕不过的重点领域。提到线程,就常会听到线程安全的术语。那什么是线程安全呢?通俗点说,就是线程访问时不产生资源冲突。其实,这是一个有点难以定义的概念,不是很容易让人一听就懂的概念。“一个类可以被多个线程安全调用就是线程安全的”《Java编程并发实践》。

来说说静态变量、实例变量、局部变量在多线程下的安全问题吧!

(一)静态变量:线程非安全

1、静态变量:使用static关键字定义的变量。static可以修饰变量和方法,也有static静态代码块。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。

用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它的类的对象时,不生成static变量的副本,而是类的所有实例共享同一个static变量。

2、静态变量使用的场景:

(1)对象间共享值时

(2)方便访问变量时

3、静态方法使用注意事项:

(1)不能在静态方法内使用非静态变量,即不能直接访问所属类的实例变量;

(2)不能在静态方法内直接调用非静态方法;

(3)静态方法中不能使用this和super关键字;

4、验证静态变量的线程安全性:

(1)从程序执行的图中我们可以看出,执行结果中有错误数据,证明了静态变量是存在资源冲突问题的。

(2)程序运行结果图:

wKioL1XIYiCz51UGABceSj2NUtI169.bmp

5、结论:静态变量也称为类变量,属于类对象所有,位于方法区,为所有对象共享,共享一份内存,一旦值被修改,则其他对象均对修改可见,故线程非安全。

 

(二)实例变量:单例时线程非安全,非单例时线程安全

1、实例变量:实例变量属于类对象的,也就是说,属于对象实例私有,在虚拟机的堆中分配。

2、验证实例变量的线程安全性:

(1)从程序截图中,我们可以看到,当为单例模式时,会产生资源冲突,当非单例模式时,则不会产生线程冲突。

(2)程序运行结果图:

图1:

wKioL1XIYl_RoatmABZU8hrY9Ck087.bmp

图2:

wKioL1XIYpzTOhE2ABZK5iG2N3I856.bmp

3、结论:实例变量是实例对象私有的,系统只存在一个实例对象,则在多线程环境下,如果值改变后,则其它对象均可见,故线程非安全;如果每个线程都在不同的实例对象中执行,

则对象与对象间的修改互不影响,故线程安全。

(三)局部变量:线程安全

1、局部变量:定义在方法内部的变量。

2、验证局部变量的安全性:

(1)从程序截图中可以看出,局部变量在多线程下没有产生资源冲突的问题

(2)程序运行结果图:

wKiom1XIYLvxqpwpABZORsRL6uY028.bmp

3、结论:每个线程执行时都会把局部变量放在各自的帧栈的内存空间中,线程间不共享,故不存在线程安全问题。

 

(四)静态方法的线程安全性

1、静态方法中如果没有使用静态变量,则没有线程安全的问题;

静态方法内的变量,每个线程调用时,都会新创建一份,不会公用一个存储单元,故不存在线程冲突的问题。

 

以上就是对多线程环境下静态变量、实例变量和局部变量的一点点研究,也仅供自己在需要或遗忘的时候查询参考下了。

mysql 查询当天、本周,本月,上一个月的数据

https://www.cnblogs.com/benefitworld/p/5832897.html

今天

昨天

近7天

近30天

本月

上一月

查询本季度数据

查询上季度数据

查询本年数据

查询上年数据

查询当前这周的数据

查询上周的数据

查询上个月的数据

复制代码

复制代码

查询当前月份的数据 

查询距离当前现在6个月的数据

 

(转载)零基础菜鸟的Python+TensorFlow之旅(一)——初识Tensor & Flow

原文:https://blog.csdn.net/weixin_42632109/article/details/80956133

开篇的话

Hello~ 如果你点开了这篇文章,你一定是一个内心深处对机器学习有着深深好奇并且又极其渴望亲自动手摆弄一番的重度IT玩家。TensorFlow是Google开发的一个机器学习的框架,是目前GitHub上深度学习领域最受欢迎的工具,他使用起来非常非常非常方便,并且有Google强大的资源库作为后备支撑,如果你是人工智能行业的从业者,或者想要在人工智能领域开拓自己事业的程序猿,亦或是新科技的爱好者,花点时间学习下TensorFlow,保证你学不了吃亏,学不了上当!
由于TensorFlow中的一些设计理念比较先进,所以很多同学会在一些知识的理解上产生困扰,本人作为一名从教师转行的程序猿,深知各位同学在这条道路上的难言之痛,于是决定开设此教程,为大家提供最简单最直接最粗暴的讲解,帮助各位同学以最轻松最愉快最爽朗的方式学会TensorFlow这个必备大杀器!

什么是Tensor?

Tensor,翻译成中文就是“张量”的意思,至于“张量”这两个字连在一起,可能很多同学都会一脸茫然,没关系,姑且不用放在心上,就好像当初第一次听说“数组”或者“指针”的时候,也不知道是个什么东东,暂且先知道Tensor(英文)=张量(中文)就好了。
在开始的时候,我们可以姑且把Tensor当成是“数组”,但实际上Tensor并不等同于数组,后面随着对TensorFlow的逐渐学习深入,很快你就能明白Tensor到底是个什么东西啦!说到这里,我们就暂且认为Tensor是一个功能更高级更先进更强大的“数组”即可。下面我们通过实际代码来简单看一下Tensor到底是个什么东西:

  • 1
  • 2
  • 3
  • 4
  • 5

以上代码块十分简单,第1行,首先导入TensorFlow的包,并给他起个别名“tf”,这是为了在后面的代码中使用起来更方便(想想每次使用TensorFlow的时候只输入“tf”两个字母可比输入“tensorflow”方便太多了),至于为什么要用tf,很简单的啦,就是Tensor和Flow的首字母t和f了。
接下来,第3行中,tensor_a = tf.constant([[1, 2, 3], [4, 5, 6]])定义了一个Tensor,其名字为tensor_atf.constant表示tensor_a 定义的是一个constant类型的Tensor(张量)。Tensor的详解将会在下一期专门进行介绍。
第4行的代码,我们来亲眼看一下Tensor到底是什么。运行上述代码之后,print出来的结果是:

  • 1

我们可以看到,一个Tensor包含3个属性:名字、形状和数据类型。Tensor是TensorFlow中最基本的数据结构,TensorFlow的相关运行都是以Tensor为基础来开展的。
这里写图片描述
可以看出,一个Tensor中,包含了该Tensor的名字,该Tensor的形状,以及该Tensor运行的数据的数据类型。Tensor中的shape记录的是“数组”的形状(一个2 x 3的矩阵),而非具体的数据。

什么是Flow?TensorFlow又是什么?

Flow,中文就是“流”的意思,TensorFlow中的Flow就跟数据流、信息流中的“流”是同一个意思,TensorFlow的意思也就是“张量流”,跟数据流和信息流等概念类似,数据流指的是数据的序列或者数据的流程,TensorFlow指的也就是Tensor的序列或者说是Tensor的流程。
我们都知道在机器学习中,数据的处理要经过一系列的流程,进而得到最终的处理结果,TensorFlow这个看起来很帅气的名字的意思也就是这个流程,看起来很生动形象,又不缺乏高大上的感觉。

(在后续的文章中,将会继续用轻松愉快的方式,为大家讲解TensorFlow这一人工智能必备利器,帮助大家在IT界行走江湖!如有问题,欢迎在下方留言,一起交流学习!^_^)

版权声明:转载请联系作者,谢谢! https://blog.csdn.net/weixin_42632109/article/details/80956133