num

关于for循环里面异步操作的问题

坚强是说给别人听的谎言 提交于 2020-03-06 14:57:32
https://www.cnblogs.com/vipzhou/p/6519552.html 关于for循环里面异步操作的问题 首先来看一个比较简单的问题,我们想实现的就是每隔1s输出0-4的值,就是这么简单,看下错误写法: 1 2 3 4 5 6 7 8 function test() { for ( var i = 0; i < 5; ++i) { setTimeout(function() { console.log( "index is :" , i); }, 1000); } } test(); 以上代码会如何输出?输出如下: 1 2 3 4 5 index is : 5 index is : 5 index is : 5 index is : 5 index is : 5 而且该操作几乎是在同一时间完成,setTimeout定时根本就没有起作用,这是因为:单线程的js在操作时,对于这种异步操作,会先进行一次“保存”,等到整个for循环执行结束后,此时i的值已经变成5,因为setTimeout是写在for循环中的,相当于存在5次定时调用,这5次调用均是在for循环结束后进行的,所以自然而然输出都是5, 正确的实现有几种,一般情况下,我们使用递归实现,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

JS for循环中的label

六月ゝ 毕业季﹏ 提交于 2020-03-06 10:32:32
let num = 0; for (let i = 0; i < 10; i ++) { for (let j = 0; j < 10; j ++) { if (i === 5 && j === 5) { break; } num ++; } } console.log(num); // 95 条件成立break跳出的是内部的循环 如果条件成立要跳出全部循环该怎么做? let num = 0; out: for (let i = 0; i < 10; i ++) { for (let j = 0; j < 10; j ++) { if (i === 5 && j === 5) { break out; } num ++; } } console.log(num); // 55 out就是for循环中的label指向的是当前的循环块当break out时 跳出的是out指向的代码块continue 同理 来源: https://www.cnblogs.com/QQPrincekin/p/12425078.html

多线程-读写锁

懵懂的女人 提交于 2020-03-06 09:00:35
1. 读写锁 ReadWriteLock管理一组锁,一个是只读的锁,一个是写锁。 Java并发库中ReetrantReadWriteLock实现了ReadWriteLock接口并添加了可重入的特性 假设你的程序中涉及到对一些共享资源的读和写操作,且写操作没有读操作那么频繁。在没有写操作的时候,两个线程同时读一个资源没有任何问题,所以应该允许多个线程能在同时读取共享资源。但是如果有一个线程想去写这些共享资源,就不应该再有其它线程对该资源进行读或写(译者注:也就是说:读-读能共存,读-写不能共存,写-写不能共存)。这就需要一个读/写锁来解决这个问题。 对于lock的读写锁,可以通过new ReentrantReadWriteLock()获取到一个读写锁。所谓读写锁,便是多线程之间读不互斥,读写互斥。读写锁是一种自旋锁,如果当前没有读者,也没有写者,那么写者可以立刻获得锁,否则它必须自旋在那里,直到没有任何写者或读者。如果当前没有写者,那么读者可以立即获得该读写锁,否则读者必须自旋在那里,直到写者释放该锁 简单来说就是 独占锁(写锁):一次只能被一个线程占有 共享锁(读锁):该锁可以被多个线程占有! 先看一下没有锁的情况 package demo.ReadWriteLock; ​ import java.util.HashMap; import java.util.Map; ​

分糖果

老子叫甜甜 提交于 2020-03-06 05:13:35
分糖果问题 题目 解题思路 解答 题目 一些糖果 candies,分给排好队的 n = num_people 个小朋友。给第一个小朋友 1 颗糖果,直到给最后一个小朋友 n颗糖果。然后,我们再回到队伍的起点,给第一个小朋友 n + 1 颗糖果,依此类推,直到给最后一个小朋友 2 * n 颗糖果,直到糖果分完。 题目来源:https://leetcode-cn.com/problems/distribute-candies-to-people/ 解题思路 1.判读小朋友的个数,若小于或等于0,不发糖果,返回null 2.若不为空,获取给第一个小朋友糖果的次数, 3.由于每个小朋友每次获得的糖果数之间满足等差队列 4.获得在最后一次到达第一个小朋友前剩余的糖果 5.获得每个小朋友获得的糖果数 解答 测试代码 import java . util . Scanner ; public class tanguo { tanguo t = new tanguo ( ) ; Scanner s = new Scanner ( System . in ) ; System . out . println ( "请输入糖果数:" ) ; int candies = s . nextInt ( ) ; System . out . println ( "请输入人数:" ) ; int num

Java实现 LeetCode 283 移动零

孤人 提交于 2020-03-06 05:01:10
283. 移动零 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 class Solution { public void moveZeroes ( int [ ] nums ) { if ( nums == null || nums . length == 0 ) return ; int insertPos = 0 ; for ( int num : nums ) { if ( num != 0 ) { nums [ insertPos ++ ] = num ; } } while ( insertPos < nums . length ) { nums [ insertPos ++ ] = 0 ; } } } 来源: CSDN 作者: 南 墙 链接: https://blog.csdn.net/a1439775520/article/details/104670804

C语言I博客作业08

杀马特。学长 韩版系。学妹 提交于 2020-03-06 04:41:34
这个作业属于哪个课程 C语言程序设计II 这个作业要求在哪里 C语言I博客作业08 我在这个课程的目标是 学习C语言,码代码,为后面的学习打好基础 这个作业在哪个具体方面帮助我实现目标 更加了解编程及代码题的编写 参考文献 PTA系统常见问题解答 ; C语言基础知识 ; whlie 1.PTA实验作业 1.1 jmu-c-二进制转10进制 输入一组二进制字符,输出其对应的十进制数。当输入回车键时,输入结束。若输入非二进制字符,输出error input! 输入样例1: 11111111 输出样例1: 255 输入样例2: 34 输出样例2: error input! 1.1.1数据处理 数据表达:用了变量num,i,item,sum,s,其中num表示二进制字符,sum表示十进制数,s表示用于之后的输出计算;其中#include<string.h>为用字符串处理函数的头文件;其中%s为字符串型格式符。 数据处理:伪代码 include<stdio.h> include<math.h> include<string.h> 运用到了字串符头文件 int main() { 定义字符型变量num;整形变量i,item,sum,s 将新取值1赋值给s,将0赋值给sum 输入num 运用for循环 for(i=0;num[i]>0;i++) { 如果num[i] 不等于'0' 并且 num[i

Python基础之函数基本用法与进阶详解

邮差的信 提交于 2020-03-06 04:27:52
本文实例讲述了Python基础之函数基本用法与进阶。分享给大家供大家参考,具体如下: 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形式 无参数,无返回值 无参数,有返回值 有参数,无返回值 有参数,有返回值 定义函数时,是否接收参数,或者是否返回结果,是根据 实际的功能需求 来决定的! 如果函数 内部处理的数据不确定,就可以将外界的数据以参数传递到函数内部 如果希望一个函数 执行完成后,向外界汇报执行结果,就可以增加函数的返回值 1.1 无参数,无返回值 此类函数,不接收参数,也没有返回值,应用场景如下: 只是单纯地做一件事情,例如 显示菜单 在函数内部 针对全局变量进行操作,例如:新建名片,最终结果 记录在全局变量 中 注意: 如果全局变量的数据类型是一个 可变类型,在函数内部可以使用 方法 修改全局变量的内容 —— 变量的引用不会改变 在函数内部,使用赋值语句 才会 修改变量的引用 1.2 无参数,有返回值 此类函数,不接收参数,但是有返回值,应用场景如下: 采集数据,例如 温度计,返回结果就是当前的温度,而不需要传递任何的参数 1.3 有参数,无返回值 此类函数,接收参数,没有返回值,应用场景如下: 函数内部的代码保持不变,针对 不同的参数

Java经典算法:二进制监视

六月ゝ 毕业季﹏ 提交于 2020-03-06 02:46:06
给定一个非负整数n表示当前点亮的LED数量,请返回手表可能代表的所有可能时间。 例: 输入:n = 1 返回:[“ 1:00”,“ 2:00”,“ 4:00”,“ 8:00”,“ 0:01”,“ 0:02”,“ 0:04”, “ 0:08”,“ 0:16”,“ 0:32”] 公认的Java解决方案 public List readBinaryWatch(int num) { List result = new ArrayList(); for(int i=0; i<12; i++){ for(int j=0; j<60; j++){ int total = countDigits(i)+countDigits(j); if(total==num){ String s=""; s+=i+":"; if(j<10){ s+="0"+j; }else{ s+=j; } result.add(s); } } } return result;} public int countDigits(int num){ int result=0; while(num>0){ if((num&1)==1){ result++; } num>>=1; } return result;} 最后,开发这么多年我也总结了一套学习Java的资料与面试题,如果你在技术上面想提升自己的话,可以关注我

批量处理NTU数据集

时光总嘲笑我的痴心妄想 提交于 2020-03-06 00:07:03
''' 读取NTU原始数据的x y z 坐标, 保存在字典中 并将文件保存 ''' import os import numpy as np import pickle def get_raw_body_data(ske_file,ske_name): assert os.path.exists(ske_file),'Error:Skeleton file {} not fond'.format(ske_file) print("Reading data from {}".format(ske_file)) with open(ske_file,'r') as fr : str_data = fr.readlines() num_frames = int(str_data[0].strip('\r\n')) print("此文件共:{}帧".format(num_frames)) frame_drop = [] bodies_data = dict() valid_frames = -1 current_line = 1 for f in range(num_frames): num_bodies = int(str_data[current_line].strip('\r\n')) current_line += 1 print("正在读取第{}帧".format(f)) if

简单的统计代码程序

感情迁移 提交于 2020-03-06 00:06:31
# -*- coding: utf-8 -*- import os,re num = 0 for root, dis, files in os.walk('G:\\paopaoyu\\apps'): for fil in files: p = re.compile('\W*.py$') m = p.search(fil) if m: #print fil f = file(root + '\\' + fil) temp = 0 while True: line = f.readline() if len(line) == 0: break num += 1 temp += 1 print fil + '----' + str(temp) f.close() print num    来源: https://www.cnblogs.com/imouren/archive/2012/03/05/2380387.html