搜索词>>拼多多 耗时0.0060
  • 拼多多大转盘涉嫌欺骗消费者

    拼多多大转盘活动欺骗首先,他会给你一个初始金额,大概在299.90或者499.90.并且给你一定的转盘次数拼多多大转盘活动欺骗首先,他会给你一个初始金额,大概在299.90或者499.90.并且给你一定的转盘次数。基本你用完次数能达到299.99或者499.99.最后一分是不会简单给你的。无论后面提示你再邀请多少个人。拼多多大转盘活动欺骗金额到了99.99他会百分之百先抽金币。欺骗点:从转盘设计来看,抽到0.01元的概率应该是50%。但是一旦金额达到299.99或者499.99后就会百分百抽中金币或者祝福。从而可以看出系统再后台做了手脚已经失去活动的公平公正性。不要以为客户没付出,你发了很多朋友分享,等同于给他做广告。你一天发传单能发来几个客户到店的概率是极低的。但是他的这种转发来店概率很搞。且发传单一天花费至少100.活动说明,金币达到10个也能提现。但是当金币达到9的时候,自动下次必中0.1.接下来就是9.1-9.9 这个阶段也可能抽出祝福。也就是无效。你以为9.9后面就是10了吗?不。9.9以后就是9.91-9.99中间很大概率抽出祝福。也就是无效。在上面的过程中你是无法抽中0.01元的。(拉到一个新客户除外,新客户可能有机会0.01分完成)欺骗点:其一:在转盘金币处没写明,抽到金币为0.01-1之间。让人产生很容易的效果,这估计也是他们内部设计。但是活动未公开说明。其二:如同上面的欺骗一样。转盘的概率与实际图不一致,转盘的0.01元概率为50%但是实际概率可能1%不到。概率被后台调整,但是给客户看的是另外一套,涉嫌欺骗。综上所述,老用户需要基础的 9*3=27最少。然后再加无效初步估计50人不一定能成功。这只是300系列的预估。500系列的据网络资料统计连续抽50祝福的不在少数,成功案例极少。(注意:以上不含新用户情况。)
  • java多线程编程_java多线程安全_java多线程实现安全锁CAS机制

    java多线程编程_java多线程安全_java多线程实现安全锁CAS机制,CAS在java多线程中相当于数据库的乐观锁,synchronized相当于数据库的乐观锁。<h2>引言</h2>     java多线程编程中难免会遇到资源共享。这里将会讲解一下java多线程中的CAS机制和锁的基础概念。java多线程编程_java多线程安全_java多线程实现安全锁CAS机制,CAS在java多线程中相当于数据库的乐观锁,synchronized相当于数据库的乐观锁。 <h2>一.java多线程编程常见问题</h2> <strong><a rel="external nofollow" target="_blank" id="java多线程1" name="java多线程1">java多线程示例程序</a>:</strong>启动两个线程,每个线程中让静态共享变量count循环累加100次<br /> <br /> <a rel="external nofollow" target="_blank" id="java多线程代码" name="java多线程代码"><strong>java多线程示例代码</strong></a>: <pre> <code class="language-java">package xqlee.net.project.demo.thread.synchronize; public class ForTest { public static int count = 0; public static void main(String[] args) { // 开启两个线程 for (int i = 0; i < 2; i++) { new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(10); } catch (Exception e) { e.printStackTrace(); } //每个线程累计加100 for (int j = 0; j < 100; j++) { count++; // System.out.println(count); } } }).start(); } try { Thread.sleep(2000); } catch (Exception e) { e.printStackTrace(); } System.out.println("count=" + count); } } </code></pre> <strong>疑惑</strong>:<span style="color:#6600ff">最终输出的count结果是多少呢?两个线程执行完毕一定是200吗?</span><br /> <br /> <strong>答案</strong>:因为这段代码不是线程安装的,所以最终的自增结果很有可能会小于200。<br /> <strong>尝试执行结果</strong>:<br /> <img alt="java多线程演示代码执行结果" class="img-thumbnail" src="/assets/upload/blog/thumbnail/2018-01/00053be4566b4b93acc2f6e7b13e93bf.png" /><br /> 接下来,修改上面的演示代码。通过关键字synchronized在java多线程编程实现中添加一个锁。这个是个重量级的锁。后续详说。<br /> 修改后演示代码如下: <pre> <code class="language-java">package xqlee.net.project.demo.thread.synchronize; public class ForTest { public static int count = 0; public static void main(String[] args) { // 开启两个线程 for (int i = 0; i < 2; i++) { new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(10); } catch (Exception e) { e.printStackTrace(); } //每个线程累计加100 for (int j = 0; j < 100; j++) { synchronized (ForTest.class) { count++; } // System.out.println(count); } } }).start(); } try { Thread.sleep(2000); } catch (Exception e) { e.printStackTrace(); } System.out.println("count=" + count); } } </code></pre> <br /> 再次执行演示代码,查看结果:<br /> <img alt="java多线程编程加锁后的执行结果" class="img-thumbnail" src="/assets/upload/blog/thumbnail/2018-01/0ef74f747d6c440c8f62513431d9b462.png" /><br />     加了同步锁之后,count自增的操作变成了原子性操作,所以最终的输出一定是<strong>count=200</strong>,代码实现了线程安全。<br /> <br />     但是注意,虽然synchronized确保了线程的安全,但是在某些情况下,却不是一个最优选择。为啥这么说呢?关键在于synchronized存在性能问题。synchronized关键字会让没有得到锁资源的线程进入BLOCKED状态,而后再争夺到锁资源后恢复为RUNNABLE状态,这个过程中涉及到操作系统<strong>用户模式</strong>和<strong>内核模式</strong>的转换,代价比较高。尽管Java1.6为Synchronized做了优化,增加了从<strong>偏向锁</strong>到<strong>轻量级锁</strong>再到<strong>重量级锁</strong>的过度,但是在最终转变为重量级锁之后,性能仍然较低。<br /> <br /> <br /> 那么有啥好的其他解决办法嘛?<br /> 有:原子操作类;<br /> <img alt="JDK中的原子操作类" class="img-thumbnail" src="/assets/upload/blog/thumbnail/2018-01/4a065fca722e4577982931e44fe71839.png" /> <p>  所谓原子操作类,指的是java.util.concurrent.atomic包下,一系列以Atomic开头的包装类。例如<strong>AtomicBoolean</strong>,<strong>AtomicInteger</strong>,<strong>AtomicLong</strong>。它们分别用于Boolean,Integer,Long类型的原子性操作。</p> <p>现在我们尝试在代码中引入AtomicInteger类:</p> <pre> <code class="language-java">package xqlee.net.project.demo.thread.synchronize; import java.util.concurrent.atomic.AtomicInteger; public class ForTest2 { public static AtomicInteger count = new AtomicInteger(0); public static void main(String[] args) { // 开启两个线程 for (int i = 0; i < 2; i++) { new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(10); } catch (Exception e) { e.printStackTrace(); } //每个线程累计加100 for (int j = 0; j < 100; j++) { count.incrementAndGet(); // System.out.println(count); } } }).start(); } try { Thread.sleep(2000); } catch (Exception e) { e.printStackTrace(); } System.out.println("count=" + count); } } </code></pre> <br /> 演示执行结果:<br /> <img alt="原子操作类进行乐观锁" class="img-thumbnail" src="/assets/upload/blog/thumbnail/2018-01/be44242a5e9340abbe97aa8cd621a55f.png" /><br /> 使用AtomicInteger之后,最终的输出结果同样可以保证是200。并且在<strong>某些情况下</strong>,代码的性能会比Synchronized更好。<br /> <br /> 那么Atomic操作类底层到底利用了什么手段呢?<br /> 其实Atomic就是用到了我们要讲的[CAS机制]<br />   <p><strong>什么是CAS?</strong></p> <p> </p> <p>CAS是英文单词<strong>Compare And Swap</strong>的缩写,翻译过来就是比较并替换。</p> <p> </p> <p>CAS机制当中使用了3个基本操作数:内存地址V,旧的预期值A,要修改的新值B。</p> <p>更新一个变量的时候,只有当变量的预期值A和内存地址V当中的实际值相同时,才会将内存地址V对应的值修改为B。</p> <p>这样说或许有些抽象,我们来看一个例子:</p> <p>1.在内存地址V当中,存储着值为10的变量。</p> <img alt="内存地址V" class="img-thumbnail" src="/assets/upload/blog/thumbnail/2018-01/9da6331c557f46d3ad148fe777a91e5a.png" /><br /> 2.此时线程1想要把变量的值增加1。对线程1来说,旧的预期值A=10,要修改的新值B=11。<br /> <img alt="内存地址V2" class="img-thumbnail" src="/assets/upload/blog/thumbnail/2018-01/761fcd40fb074a66915e845d08139997.png" /><br /> <br /> 3.在线程1要提交更新之前,另一个线程2抢先一步,把内存地址V中的变量值率先更新成了11。<br /> <br /> <img alt="内存地址V3" class="img-thumbnail" src="/assets/upload/blog/thumbnail/2018-01/e247329a723f45c39dd4db9f50b59122.png" /><br /> 4.线程1开始提交更新,首先进行<strong>A和地址V的实际值比较(Compare)</strong>,发现A不等于V的实际值,提交失败。<br /> <img alt="内存地址V4" class="img-thumbnail" src="/assets/upload/blog/thumbnail/2018-01/ea99b78cf5fa414fa481ff39437f310e.png" /><br /> 5.线程1重新获取内存地址V的当前值,并重新计算想要修改的新值。此时对线程1来说,A=11,B=12。这个重新尝试的过程被称为<strong>自旋</strong>。<br /> <br /> <img alt="内存地址V5" class="img-thumbnail" src="/assets/upload/blog/thumbnail/2018-01/f03a795b87884530a02d4247f2e1bd26.png" /><br /> 6.这一次比较幸运,没有其他线程改变地址V的值。线程1进行<strong>Compare</strong>,发现A和地址V的实际值是相等的。<br /> <br /> <img alt="内存地址6" class="img-thumbnail" src="/assets/upload/blog/thumbnail/2018-01/f1d8e07fac864ef9845aed9436d17c7f.png" /><br /> 7.线程1进行<strong>SWAP</strong>,把地址V的值替换为B,也就是12。<br /> <img alt="内存地址7" class="img-thumbnail" src="/assets/upload/blog/thumbnail/2018-01/c407d63f332043bc8c09f4582d66e6dc.png" /><br />     所以从思想上来说,Synchronized属于<strong>悲观锁</strong>,悲观地认为程序中的并发情况严重,所以严防死守。CAS属于<strong>乐观锁</strong>,乐观地认为程序中的并发情况不那么严重,所以让线程不断去尝试更新。<br /> <br /> 两种机制CAS机制和Synchronized,没有绝对的好坏。那么如何抉择呢?<br /> 在并发量非常搞的情况下使用Synchronized同步锁更适合一些。<br /> <br /> <strong>CAS缺点:</strong> <p><strong>1.CPU开销较大</strong></p> <p>在并发量比较高的情况下,如果许多线程反复尝试更新某一个变量,却又一直更新不成功,循环往复,会给CPU带来很大的压力。</p> <p><strong>2.不能保证代码块的原子性</strong></p> <p>CAS机制所保证的只是一个变量的原子性操作,而不能保证整个代码块的原子性。比如需要保证3个变量共同进行原子性的更新,就不得不使用Synchronized了。</p> <p><strong>3.ABA问题</strong></p> <p>这是CAS机制最大的问题所在。</p> <p>什么是<strong>ABA</strong>问题?怎么解决?我们后面来详细介绍。</p>
  • 多肉植物花箭繁殖法

    大多数多肉植物春末夏初开花,在秋天里,也依然有不少多肉植物开花,而且还美极了大多数多肉植物春末夏初开花,在秋天里,也依然有不少多肉植物开花,而且还美极了。不过,我们今天的重点不是赏花,而是辣手摧花,让美丽的多肉植物之花诞生出更多的小多肉。​许多刚接触多肉植物的朋友,会觉得多肉植物的繁殖很神奇,一个叶片,duang的一下爆出了许多小崽;一个枝条,duang的一下就成了一颗新的多肉;甚至一个带有少量茎组织的根系,duang的一下长出了新的生命。叶插、枝插、根插,大家都有所了解,但可能还有不少人不知道,多肉植物还可以花插——利用多肉植物的花剑(花箭)进行繁殖,成功率居然还不低!!其实,利用开花的枝条繁殖在其他木本植物里算是比较常见的,譬如月季,月季扦插最好的枝条是初花期的月季枝条,因为为了开花,往往花枝会储蓄了大量的营养,剪掉了花苞,这些营养上面无处可去,自然只能长根去了。所以,多肉植物可以利用花箭繁殖也就不足为怪了。多肉植物的花箭繁殖,相比枝插来说并没有什么太大的不同,也要注意伤口的晾干,也是扦插于土中放置于通风阴凉无直射光处,一样不要插太深,以免烂枝。但多肉植物的花箭繁殖还要注意以下几点:1.花是肯定要剪掉的,只要花还在会加速消耗枝条的营养,最后导致纸条枯萎2.能用来花插的花箭上面必须有叶片,或者曾经有叶片,因为新的生命就是在叶腋上长出的,从某种程度上来说,也可以理解为花箭提供营养物质给花箭上的叶片,促使它们繁殖,像白牡丹这种花茎上光秃秃的没有叶片,花插就没有意义了。像银星,花箭上的叶片早就退化了,花插也就无望了,十二卷类的多肉,也不在花箭可繁殖范围内。3.花箭繁殖通常来说不管什么季节,下部根系长根都会很快,一两周就会长根,但叶腋上长出新芽时间则不一定,通常春秋更容易爆芽,夏冬可能只长根积蓄能量,因此花剪繁殖最好的季节还是再春秋。4.容易花箭繁殖的,一般是花茎上部的叶腋先爆出小芽,不容易花箭繁殖的,则一般是花茎下部的叶腋先爆出小芽。5.花箭繁殖的成功率和效率,各品种都不一样,譬如像红兔耳,一个花枝去掉花苞,妥妥的就是长出新的红兔耳,还是老桩造型。像黑王子,我曾经插了几十个黑王子的花箭,苦等小半年,根系各种爆长,就是不见长新芽,后面在春天里,才看到各种爆头,通常来说只要根系长根,茎干不黑,有叶片,是可以等到他长新芽的。6.甚至于有些多肉植物直接将花剪掉,花箭上也会爆出新的小崽,不过,这应该是概率事件,也有可能杆子枯了,啥都没有,这种尝试方法在利于繁殖的春天也许会好点。7.花箭扦插,通常也比较容易黑杆,尤其在闷热潮湿的环境里。8.花箭的上的小叶片有些也能叶插成功,也可以撸一撸,尝尝鲜。在秋天这个季节里,也有不少多肉植物在开花,有机会的花友,不妨试一试花箭的繁殖成功率。
  • 多点APP哪些不为人知的套路

    一.多点APP是啥?下图就是多点用多点官方的陈述就是一家数字零售商解决方案服务商,为大型商超提供“双打”模式的赋能,一方面为超市搭建仓配售一体化的完整电商能力,另一方面为传统零售企业提供深入到零售全链条的数字画改造工作,帮助商超大号监视的数一.多点APP是啥?下图就是多点用多点官方的陈述就是一家数字零售商解决方案服务商,为大型商超提供“双打”模式的赋能,一方面为超市搭建仓配售一体化的完整电商能力,另一方面为传统零售企业提供深入到零售全链条的数字画改造工作,帮助商超大号监视的数字画地基。上面说了一大堆官方的,晦涩难懂,说白点。两个方面:一是给大型超市提供多点自主收银机;二给大型超市提供多点APP网上商城,让用户可以通过多点APP购买超市的东西;二.多点APP套路深从多点APP的官网宣传来说,多点APP的存在确实帮助了企业也方便了用户。用户在家就能逛自己附近的超市,为用户节约了一些时间。接下来我们来说说多点的套路(也可以说运营质量八吧)事情是这样子滴首先呢,家附近的新世纪做活动啦,多点APP也跟着做活动。并且呢。多点APP还有部分商品的5折卷,本想着真是为用户节约呀所以立即选购了一些打折商品和一些其他的。下单的时候都是有库存的,不然肯定下不起单的,这个用过淘宝京东的都知道的单下完了就开开心心的等待实惠的商品送上门了---------------------------------华丽的分割线---------------------------------------电话响了:多点?多点客服:您好您购买的XXX没货了,您看您这边把XXX退货了吧,其他商品马上就可以配送了我:一脸懵逼,真没货了?没货怎么还能让我们下单?并且下单显示库存大于个位数。多点客服:不好意思确实没货了。我:....--------------------------------好吧,没货我也没法了,只能退了静下心来仔细想了下,这种操作到底谁的锅?好不容易蹭个活动,蹭你多点推广期间有些优惠卷。买了些优惠的商品,结果单下好了你给我说没货...你这是要逼着我提个2Xm的刀来超市吓你么通过活动的方式来刷订单给你的投资商看数据的么?还是你多点的运营质量体系就这么坑用户呢?多点啊多点,第一次活动你就坑我,好吧我是农村人,穷怕了。
  • 多点Dmall平台欺客_多点售卖快到期产品且不予说明

           多点购物平台,已经不是第一次说他的不足了       多点购物平台,已经不是第一次说他的不足了。今天这次购物让我考虑是否卸载这个软件了。同样的永辉平台购物,送来的都是新鲜的,完全不用考虑过期问题,那种快到期的产品也会上架的产品说明。       然而多点呢?商品啥也不说,。参考下面两个现代牛奶蒙牛牛奶平台下单记录:记录1记录2             同样要过期的产品,超市内部也在卖,且说明是要过期的,价格也比他这个低。那么多点平台赚的啥钱?来赚取我们客户和超市信息不同步的钱吗?下面是到手的货物:收到货物其中一个是 2020年10月,另外一个是2020年11月。保质期都是6个月。现在都是2021年3月底了。也就说其中一个不止保质期过半还只剩下一个月不到的保质期。最后点评大家使用多点购物需要谨慎,容易买到快过期的产品,如果想省心建议大家使用永辉和河马吧。这两个平台都不错。
  • Java多线程编程入门到初级

    Java多线程编程入门到初级Java多线程编程入门到初级
  • 微信多开 Windows 10

    某些情况下我们需要使用多个微信,需要在PC上多开微信,下面具体介绍Windows 10 操作系统上如何多开微信1.获取微信的安装路径找到桌面安装的微信快捷方式,然后数表右键属性查看微信的安装路径,如下图:​上图中目标里面的内容就是安装路径,某些情况下我们需要使用多个微信,需要在PC上多开微信,下面具体介绍Windows 10 操作系统上如何多开微信1.获取微信的安装路径找到桌面安装的微信快捷方式,然后数表右键属性查看微信的安装路径,如下图:​上图中目标里面的内容就是安装路径,这里的安装路径是"C:\Program Files (x86)\Tencent\WeChat\WeChat.exe"2.编写多开BAT脚本其实这个脚本很简单,看着大家都能学会的,不用担心你不会。首先创建一个txt文件,暂时命名为微信多开吧,如下图:​我们刚才的安装路径是"C:\Program Files (x86)\Tencent\WeChat\WeChat.exe"我们脚本内容需要的是这样的C:\"Program Files (x86)"\Tencent\WeChat\WeChat.exe注意上面双引号的位置。打开文本  微信多开.txt,双击文件微信多开即可打开文件,里面内容填写为:start C:\"Program Files (x86)"\Tencent\WeChat\WeChat.exe start C:\"Program Files (x86)"\Tencent\WeChat\WeChat.exe上面只复制了2行,说明只启动两个微信,如果需要更多者复制上面的内容行数为你想开数量即可。最后保存 微信多开.txt,然后改文件名微信多开.txt为微信多开.bat,操作如下图:​最后双击 微信多开.bat就可以打开多个微信啦​​​​​​​
  • 多肉繁殖叶插/扦插方法搜集整理

    (注意本文章多数资料来源于互联网参考搜集)众所周知,扦插是多肉繁殖的一个重要手段,对于在家庭环境下繁殖多肉的花友来说也比较容易操作,对于硬件要求也并不高,所以被广大花友们广泛应用(注意本文章多数资料来源于互联网参考搜集)众所周知,扦插是多肉繁殖的一个重要手段,对于在家庭环境下繁殖多肉的花友来说也比较容易操作,对于硬件要求也并不高,所以被广大花友们广泛应用。之前看到的网络资料都比较零散枯燥,在此根据自己的理解和经验将资料稍作归纳,捋清脉络,系统讲一讲。​一、多肉扦插的概述扦插繁殖不仅仅只是多肉植物的专利,从瓜果蔬菜到大型苗木都有广泛的应用。植物体上的每个细胞,都是由胚细胞经过无数次重复分裂出来的。一个细胞分裂成两个,两个分裂成四个……这个在生物课本上都学过。而这些重复分裂的每个细胞里面都完好地保存着胚细胞的全部基因和遗传物质,具有再生成植物体各个器官的全部遗传信息。也就是说,只要有一个细胞,就能复制出整棵植物。这种生物学说,为扦插繁殖提供了理论依据。​你可能还没有意识到,平时不经意地扦插繁殖出新的植物,其实就是在做“克隆实验”只是科学家在实验室里克隆出绵羊,我们在家里克隆出植物。说夸张一点你在做伟大的实验而自己毫不知情?!“克隆学说”的理论依据其实就是上面所说的一个细胞复制出整个生物机体。在细胞生物学上,克隆又被称作无性繁殖。所以说无性繁殖其实就是我们常说的克隆——Clone。换句话说,我用你的一根汗毛也能“扦插”出一个你来,只不过这样不被允许而已啦!所以其实说穿了并不是什么深不可测的科学理论,明白这一点,你就明白为神马一片叶子能繁殖出一棵多肉植物来了,因为那篇叶子上有无数个亲本的遗传密码,然后细胞不停地分裂…分裂…分裂…就按照它祖宗的样子,Copy出了一颗一模一样的植物。所以你也是科学的实践者!二、常见的多肉扦插方式​1.枝插:挑选健康无病害的植株的侧枝或者顶枝,用小刀迅速切下,尽量多留叶片,以利于光合作用的进行。待伤口晾干,充分愈合之后再进行扦插。或者在伤口处涂抹杀菌粉剂,或在阴凉处晾置3-5天,时间宁长勿短,切下后急于扦插只会提高枝条感染和腐烂机率。2.根插:一些多肉植物的地下根部分,例如十二卷的根或块根植物的根也可以用来繁殖,主根侧根都可以。但必须是健康饱满的根系。再例如景天科的地上茎部分切下进行扦插之后,地下根部分仍然可以进行繁殖,可不用挖出,在茎切口周围会长出新的苗体。3.叶插:选择健康、汁液饱满、表面无伤、无虫害的叶片。取下后,尽量晾置2-3天,时间宁长勿短,待伤口充分愈合之后再进行扦插。扦插时将叶片平置于扦插基质表面,或稍微倾斜,将叶柄少量埋入基质中。然后放置在阴凉处,并保持空气湿度和环境温度。扦插不仅仅只是多肉植物的专利,各种植物都可以进行扦插。但为什么唯独只有多肉植物可以进行叶插呢?简而言之,是因为多肉植物的叶片中储存的养分较多,这也是它肥厚多汁的优点之一,生根是需要消耗大量养分的。这个道理也很浅显,你用一片枫叶插肯定没戏,薄薄的叶片可供消耗的养分含量很少。同样的,景天科中的莲花掌属,叶片相对较薄,跟石莲花属相比,叶插成功率肯定也是遥不可及的。​三、多肉扦插的生根类型多肉植物扦插的生根,由于没有固定的生出位置,因为被称为“不定根”。根据不定根在茎上的发生部位可分为两种类型。(有时两种类型同时进行)​1.皮部生根型在正常情况下,扦插的形成层部位,能够形成许多薄壁细胞群,称为根原始体,这些根原始体就是产生大量不定根的物质基础。由于细胞分裂,向外分化成圆锥形的根冠,侵入韧皮部,通向皮孔,最后通过表皮形成不定根。这种的生根方法属于易生根的品种,成活率也较高。2.愈合组织生根型在扦插茎的基部切断面上,其受伤细胞的原生质会分解产生创伤激素,同时在上部转移来的生长素及生根诱导物质共同作用下,在切断面上形成愈合组织。它一边保护切口免受外界细菌入侵,一边继续进行细胞分化。在愈合组织上最活跃的细胞不断分生,形成根的生产点,即根原基,从而产生不定根。这种生根类型需要较长的时间和较高的外界条件与扦插技术,所以大多数扦插成活较难和生根较慢的品种,生根部位大多是愈合组织。概念区分:这里要和“气生根”区分一下,气生根属于不定根的一种,但是两者不能划等号。气生根是指成年植物茎上长出的、生长在地面以上的、暴露在空气中的不定根。气生根一般无根冠和根毛的结构,无法吸收养分。一般是起到支撑、攀援、呼吸、吸收空气中水分的作用,因此又被称为“呼吸根”或“通气根”。常用于多年生的草本或木本植物中,例如景天科伽蓝菜属中的许多品种都会长气生根,例如不死鸟、长寿花、月兔耳、白姬之舞等等。在扦插中发生的不定根不是气生根。四、多肉植物插穗(枝条)的取得1.插穗的切制扦插的剪切场地应该选在没有风吹日晒和比较凉爽的地方,剪切工具和扦插容器要事先消毒处理!以下以石莲花属举例。1)用小刀沿茎基部迅速切下,速度要快,不要拖泥带水,否则会造成撕裂形的伤口。切口位置不要远离叶节位置,应取在结上不超过1cm处,尽量多留叶,以利于生根提供更多养分。2)涂抹少量杀菌粉剂,多菌灵、百菌清、甲基托布津等都可。3)在阴凉处晾置三天以上,时间宁长勿短。待伤口充分愈合、植株适当塌缩之后再进行扦插。如发现插穗疲软,切口基部发红或是产生龟裂纹之后为扦插较合适时机。4)对于那些很难生根的品种,可以适当涂抹生根粉货在生根粉溶液中浸泡1-2小时,溶液浓度不宜过大。一般较皮实的品种用不着这一步。5)将插穗插入已消毒的基质插床中,插入深度3-4cm左右。保持适合的温度和湿度,避免直射阳光。对于很难生根或是木质化程度比较高的品种,可以用斜面切口或是楔形双面切口。有利于扩大愈合组织面,增大生根面。不适合扦插的植株完全黄化的植株:例如糊斑锦,植株已经完全没有叶绿素,无法进行光合作用,也就无法提供养分和生长素转移,因此生根率几乎为零。高龄化的植株或者严重木质化的植株:母株随着年龄的增加生根能力会下降,主要是生长障碍物质积累得越来越多,组织的生命活力和再生能力已经很弱。有伤病的植株或者伤口未愈合的植株:有时扦插很久之后都没有生根,甚至突然腐烂,原因是细菌感染。有时你见表面上伤口已经愈合。其实内部可能已经有菌丝产生,而有病伤更加会造成碳水化合物的大量消耗。开花的植株(花期之内的植株):开花需要消耗大量养分,生长素很难向基部转移。有的带花苞的枝条,扦插下去一段时间之后甚至不生根,但是却开花了。因为插穗体内积存的养分,是扦插后形成新器官所必须的营养物质,而营养物质全部提供给了花苞,没有足够的营养储备,生根之前就不能维持其生存,插穗的花谢之后存活率很低。2.叶片的获取(叶插)叶插的区别就是可供消耗的养分远没有茎插多,因此最好选择饱满健康,没有表面硬伤的叶片。叶柄部位最适合生根的情况是自然剥落,而不是用钝器切割。造成的物理伤害越小越好。因为叶片的大床上面愈合难度比较高,叶片体内可以提供给愈合组织的营养物质很少。​1)方案1:将叶片平放在扦插截止表面即可,保持空气湿度2)方案2:将叶片呈30-40度角斜插入基质中,叶柄部分稍稍埋入即可。保持空气湿度。五、多肉植物扦插的后期护理具体护理细节其实已经在上文大量提到了,扦插完成后保持空气相对湿度,适合的温度是最重要的,其次是要避免日光直射。如果用闷养生根法要记得定时打开通风,因为植株需要补充氧气和二氧化碳。如果发现基质中萌发菌丝,则立即喷洒杀菌药剂等等。另外,不要把不定根上的根毛当做菌丝拔除了哦…最后别怪我唠叨…扦插完了之后,其实最安全的办法就是少折腾。很多花友心急,迫切地盼望插穗赶紧生根,结果又是端起来观察,又是拔起来瞅瞅…这样无异于自毁成果!
  • java 8 stream 多字段排序

    java 8 stream 多字段排序,本例子主要使用stream进行多个字段的排序,使用了 comparators和Comparator.thenComparing()方法。比较器之间返回一个字典排序。他的排序效果有点像SQL中的group by条件。java 8 stream 多字段排序
  • Bootstrap Table 多选以及获取多选值

    ​Bootstrap TableBootstrap Table 多选以及获取多选值实现本文主要讲解在bootstrap table组建使用过程中,配置多选和获取多选选中的值​Bootstrap TableBootstrap Table 多选以及获取多选值实现本文主要讲解在bootstrap table组建使用过程中,配置多选和获取多选选中的值。首先是配置Bootstrap Table 多选$('#tableId').bootstrapTable({ //****省略其他配置****** singleSelect:false,//是否单选,false表示多选;true标识只能单选 clickToSelect: true,//启用点击某行就选中某行 columns:[ {field: 'chk', checkbox: true},//注意这里的field尽量不用返回数据的字段名,否则后面获取选中值的时候会把该字段的值变为true或者false //*****其他字段省略**** ] })获取Bootstrap Table 多选选中值var selected = $('#tableId').bootstrapTable('getSelections'); //返回值为数据对象数组 if(selected&&selected.length>0){ //非空数组时候进行的操作 $.each(selected,function(index,item){ console.log(item); }) }else{ //空数组的操作 }Bootstrap Table 图像 小部件