精华内容
下载资源
问答
  • 需要注意的是,如果参数数量大于线程数,则只会执行与线程数数量相同的请求,配置文件中多余的参数将不会执行;如果参数数据量小于线程数,部分参数会重复执行。 RampUp 时间表示启动时间,这里配置0就是立即启动。 ...

    介绍

    创建线程组,里面有三个配置。一个是CSV数据文件设置,这个就是写动态参数的地方。另外两个是常规的配置,编辑请求和显示结果。
    在这里插入图片描述

    Thread Group配置

    在这里插入图片描述
    线程数就是执行多少个HTTP请求。需要注意的是,如果参数数量大于线程数,则只会执行与线程数数量相同的请求,配置文件中多余的参数将不会执行;如果参数数据量小于线程数,部分参数会重复执行。

    RampUp 时间表示启动时间,这里配置0就是立即启动。

    循环次数,选择1,不重复执行。

    CSV 配置原件

    在这里插入图片描述
    这里修改了这两个地方。第一个选择文件的地址,第二个选择参数的名称。

    配置文件内容如下图所示,只有一个参数。
    在这里插入图片描述

    HTTP配置

    这里配置http请求,${} 占位符内写CSV配置中的变量名。
    在这里插入图片描述
    对应的后台请求地址。
    在这里插入图片描述

    结果树

    结果树没有什么需要配置的地方。参数都是动态的。
    在这里插入图片描述

    在这里插入图片描述

    巨人的肩膀

    线程组部分的参数介绍

    展开全文
  • 线程带来的开销很小,内核无需单独复制进程的内存空间或文件描述符等,这就大量地节省了CPU时间,使得创建线程比进程的速度快数十倍。另外,多 线程程序作为一种多任务、并发的工作方式,还有以下的优点:1)提高...
    同一进程可以包括多个线程,这些线程共享相同的内存空间,而进程都有各自独立的内存空间,进程之间通信需要专门的机制,这无疑增加了内核的开销,降低了系 统性能。线程带来的开销很小,内核无需单独复制进程的内存空间或文件描述符等,这就大量地节省了CPU时间,使得创建线程比进程的速度快数十倍。另外,多 线程程序作为一种多任务、并发的工作方式,还有以下的优点:1)提高应用程序响应时间;2)使多CPU系统更加有效;3)改善程序结构。 
    首先我们理清一下Pthread和Gthread的区别。Pthread即POSIX thread,Posix线程是一个POSIX标准线程,该标准定义内部API创建和操纵线程。Gthread调用的是Glib库中的线程部分;GLib 是GTK+和GNOME工程的基础底层核心程序库,是一个综合用途的实用的轻量级的C程序库。 本软件是带有界面的,并且是GTK+界面,因此,Gthread是最好的选择。
    引入Gthread线程的文件在编译时要加入参数`pkg-config --cflags --libs gthread-2.0`。
    (1)gboolean g_thread_supported();/*测试是否支持多线程*/
    (2)void g_thread_init (GThreadFunctions *vtable);/*初始化多线程支持*/
    (3)void gdk_threads_init (void);/*初始化GDK多线程支持*/
    (4)void gdk_threads_enter (void);/*进入多线程互斥区域*/
    (5)void gdk_threads_leave (void);/*退出多线程互斥区域*/
    (6)GThread * g_thread_create (GThreadFunc func, gpointer data, gboolean joinable, GError **error);
    这是创建线程函数,func是线程执行的外部函数,data是传给该外部函数的参数,joinable标志线程是否可分离,error是出错代码返回地址。
    (7)void g_thread_exit (gpointer retval);/*线程退出,retval为返回状态值*/
    (8)GMutex *g_mutex_new ();/*返回一个新的互斥锁*/
    (9) void g_mutex_lock(GMutex *mutex);/*上锁*/
    (10)void g_mutex_unlock (GMutex *mutex);/*解锁*/
    (11)GCond* g_cond_new ();/*返回一个新的信号量*/
    (12)void g_cond_signal (GCond *cond);/*释放信号量cond*/
    (13)void g_cond_wait(GCond *cond, GMutex *mutex);/*等待信号量cond*/
    展开全文
  • 文章目录1 编写驱动程序2 编写应用测试程序3 运行测试 信号量可以导致休眠,因此信号量保护的临界区没有运行时间...创建gpioled_semaphore.c文件,因为和前面的实验驱动文件部分是相同不用修改的,下面是部分内容: 1

    信号量可以导致休眠,因此信号量保护的临界区没有运行时间限制,可以在驱动的 open 函数申请信号量,然后在release 函数中释放信号量。但是信号量不能用在中断中,本节实验我们不会在中断中使用信号量。

    1 编写驱动程序

    本实验例程路径:i.MX6UL终结者光盘资料/06_Linux驱动例程/06_gpioled_semaphore
    创建gpioled_semaphore.c文件,因为和前面的实验驱动文件部分是相同不用修改的,下面是部分内容:

     1 #include <linux/types.h>
      2 #include <linux/kernel.h>
    ......
     17 #include <linux/semaphore.h>
     18 
     19 #define GPIOLED_CNT 1 /* 设备号个数 */
     20 #define GPIOLED_NAME "gpioled" /* 名字 */
     21 #define LEDOFF 0 /* 关灯 */
     22 #define LEDON 1 /* 开灯 */
     23 
     24 /* gpioled 设备结构体 */
     25 struct gpioled_dev{
     26         dev_t devid; /* 设备号 */
     27         struct cdev cdev; /* cdev */
     28         struct class *class; /* 类 */
     29         struct device *device; /* 设备 */
     30         int major; /* 主设备号 */
     31         int minor; /* 次设备号 */
     32         struct device_node *nd; /* 设备节点 */
     33         int led_gpio; /* led 所使用的 GPIO 编号 */
     34         struct semaphore sem; /* 信号量 */
     35 };
     36 
     37 struct gpioled_dev gpioled; /* led 设备 */
     38 
     39 /*
     40  * @description : 打开设备
     41  * @param – inode : 传递给驱动的 inode
     42  * @param - filp : 设备文件,file 结构体有个叫做 private_data 的成员变量
     43  * 一般在 open 的时候将 private_data 指向设备结构体。
     44  * @return : 0 成功;其他 失败
     45  */
     46 static int led_open(struct inode *inode, struct file *filp)
     47 {
     48         filp->private_data = &gpioled; /* 设置私有数据 */
     49 
     50         /* 获取信号量,进入休眠状态的进程可以被信号打断 */
     51         if (down_interruptible(&gpioled.sem)) {
     52                 return -ERESTARTSYS;
     53         }
     54 #if 0
     55         down(&gpioled.sem); /* 不能被信号打断 */
     56 #endif
     57 
     58         return 0;
     59 }
    ......
     
    105 /*
    106  * @description : 关闭/释放设备
    107  * @param – filp : 要关闭的设备文件(文件描述符)
    108  * @return : 0 成功;其他 失败
    109  */
    110 static int led_release(struct inode *inode, struct file *filp)
    111 {
    112         struct gpioled_dev *dev = filp->private_data;
    113 
    114         up(&dev->sem); /* 释放信号量,信号量值加 1 */
    115 
    116         return 0;
    117 }
    118 
    119 /* 设备操作函数 */
    120 static struct file_operations gpioled_fops = {
    121         .owner = THIS_MODULE,
    122         .open = led_open,
    123         .read = led_read,
    124         .write = led_write,
    125         .release = led_release,
    126 };
    127 
    128 /*
    129  * @description : 驱动入口函数
    130  * @param : 无
    131  * @return : 无
    132  */
    133 static int __init led_init(void)
    134 {
    135         int ret = 0;
    136 
    137         /* 初始化信号量 */
    138         sema_init(&gpioled.sem, 1);
    ......
    198         return 0;
    199 }
    200 /*
    201  * @description : 驱动出口函数
    202  * @param : 无
    203  * @return : 无
    204  */
    205 static void __exit led_exit(void)
    206 {
    207         /* 注销字符设备驱动 */
    208         cdev_del(&gpioled.cdev);/* 删除 cdev */
    209         unregister_chrdev_region(gpioled.devid, GPIOLED_CNT);
    210 
    211         device_destroy(gpioled.class, gpioled.devid);
    212         class_destroy(gpioled.class);
    213 }
    214 
    215 module_init(led_init);
    216 module_exit(led_exit);
    217 MODULE_LICENSE("GPL");
    218 MODULE_AUTHOR("topeet");
    

    第 17 行,要使用信号量必须添加<linux/semaphore.h>头文件。
    第 34 行,在设备结构体中添加一个信号量成员变量 sem。
    第 46~59行,在 open函数中申请信号量,可以使用 down 函数,也可以使用 down_interruptible函数。如果信号量值大于等于 1 就表示可用,那么应用程序就会开始使用 LED 灯。如果信号量值为 0 就表示应用程序不能使用 LED 灯,此时应用程序就会进入到休眠状态。等到信号量值大于 1 的时候应用程序就会唤醒,申请信号量,获取 LED 灯使用权。
    第 114 行,在 release 函数中调用 up 函数释放信号量,这样其他因为没有得到信号量而进入休眠状态的应用程序就会唤醒,获取信号量。
    第 138 行,在驱动入口函数中调用 sema_init 函数初始化信号量 sem 的值为 1,相当于 sem是个二值信号量。
    总结一下,当信号量 sem 为 1 的时候表示 LED 灯还没有被使用,如果应用程序 A 要使用LED 灯,先调用 open 函数打开/dev/gpioled,这个时候会获取信号量 sem,获取成功以后 sem 的值减 1 变为 0。如果此时应用程序 B 也要使用 LED 灯,调用 open 函数打开/dev/gpioled 就会因为信号量无效(值为 0)而进入休眠状态。当应用程序 A 运行完毕,调用 close 函数关闭/dev/gpioled的时候就会释放信号量 sem,此时信号量 sem 的值就会加 1,变为 1。信号量 sem 再次有效,表示其他应用程序可以使用 LED 灯了,此时在休眠状态的应用程序 A 就会获取到信号量 sem,获取成功以后就开始使用 LED 灯。

    2 编写应用测试程序

    应用测试程序使用38.1.2中的应用测试程序即可。

    3 运行测试

    1、编译驱动程序
    添加Makefile文件,修改obj-m的值为 gpioled_semaphore.o,内容如下:

    KERNELDIR := /home/topeet/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga
    CURRENT_PATH := $(shell pwd)
    obj-m := gpioled_semaphore.o
    
    build: kernel_modules
    
    kernel_modules: 
            $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules
    clean:
            $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean
    

    首先我们在终端输入两个命令(设置两个环境变量):

    export ARCH=arm
    export CROSS_COMPILE=arm-linux-gnueabihf-
    

    然后使用“make”命令进行编译,生成gpioled_semaphore.ko驱动模块文件。

    2、运行测试
    将编译好的gpioled_semaphore.ko驱动模块文件拷贝到/lib/modules/4.1.15目录下(检查开发板根文件系统中有没有“/lib/modules/4.1.15”这个目录,如果没有的话需要自行创建一下。开发板中使用的是光盘资料里面提供的busybox文件系统,光盘资料的“i.MX6UL终结者光盘资料\08_开发板系统镜像\03_文件系统镜像\01_Busybox文件系统”目录下)。输入下面命令加载模块:

    depmod
    modprobe gpioled_semaphore
    

    驱动模块加载成功如图 3.1所示:
    在这里插入图片描述

    图 3.1

    驱动模块加载成功后,使用gpioled_atomic_test应用测试程序进行测试,测试流程和原子变量测试一样。使用下面的命令打开LED灯:
    ./gpioled_atomic_test /dev/gpioled 1 &
    然后紧接着输入LED灯关闭命令:
    ./gpioled_atomic_test /dev/gpioled 0 &
    注意两个命令都是运行在后台,第一条命令先获取到信号量,因此可以操作 LED 灯,将LED 灯打开,并且占有 25S。第二条命令因为获取信号量失败而进入休眠状态,等待第一条命令运行完毕并释放信号量以后才拥有 LED 灯使用权,将 LED 灯关闭,运行结果如图 39.3.3.2所示:
    在这里插入图片描述

    图 3.2

    可以看到有两次运行结果。
    卸载模块命令:
    rmmod gpioled_semaphore

    在这里插入图片描述

    展开全文
  • 文章目录1 编写驱动程序2 编写应用测试程序3 运行测试 信号量可以导致休眠,因此信号量保护的临界区没有运行时间...创建gpioled_semaphore.c文件,因为和前面的实验驱动文件部分是相同不用修改的,下面是部分内容: 1

    信号量可以导致休眠,因此信号量保护的临界区没有运行时间限制,可以在驱动的 open 函数申请信号量,然后在release 函数中释放信号量。但是信号量不能用在中断中,本节实验我们不会在中断中使用信号量。

    1 编写驱动程序

    本实验例程路径:i.MX6UL终结者光盘资料/06_Linux驱动例程/06_gpioled_semaphore
    创建gpioled_semaphore.c文件,因为和前面的实验驱动文件部分是相同不用修改的,下面是部分内容:

     1 #include <linux/types.h>
      2 #include <linux/kernel.h>
    ......
     17 #include <linux/semaphore.h>
     18 
     19 #define GPIOLED_CNT 1 /* 设备号个数 */
     20 #define GPIOLED_NAME "gpioled" /* 名字 */
     21 #define LEDOFF 0 /* 关灯 */
     22 #define LEDON 1 /* 开灯 */
     23 
     24 /* gpioled 设备结构体 */
     25 struct gpioled_dev{
     26         dev_t devid; /* 设备号 */
     27         struct cdev cdev; /* cdev */
     28         struct class *class; /* 类 */
     29         struct device *device; /* 设备 */
     30         int major; /* 主设备号 */
     31         int minor; /* 次设备号 */
     32         struct device_node *nd; /* 设备节点 */
     33         int led_gpio; /* led 所使用的 GPIO 编号 */
     34         struct semaphore sem; /* 信号量 */
     35 };
     36 
     37 struct gpioled_dev gpioled; /* led 设备 */
     38 
     39 /*
     40  * @description : 打开设备
     41  * @param – inode : 传递给驱动的 inode
     42  * @param - filp : 设备文件,file 结构体有个叫做 private_data 的成员变量
     43  * 一般在 open 的时候将 private_data 指向设备结构体。
     44  * @return : 0 成功;其他 失败
     45  */
     46 static int led_open(struct inode *inode, struct file *filp)
     47 {
     48         filp->private_data = &gpioled; /* 设置私有数据 */
     49 
     50         /* 获取信号量,进入休眠状态的进程可以被信号打断 */
     51         if (down_interruptible(&gpioled.sem)) {
     52                 return -ERESTARTSYS;
     53         }
     54 #if 0
     55         down(&gpioled.sem); /* 不能被信号打断 */
     56 #endif
     57 
     58         return 0;
     59 }
    ......
     
    105 /*
    106  * @description : 关闭/释放设备
    107  * @param – filp : 要关闭的设备文件(文件描述符)
    108  * @return : 0 成功;其他 失败
    109  */
    110 static int led_release(struct inode *inode, struct file *filp)
    111 {
    112         struct gpioled_dev *dev = filp->private_data;
    113 
    114         up(&dev->sem); /* 释放信号量,信号量值加 1 */
    115 
    116         return 0;
    117 }
    118 
    119 /* 设备操作函数 */
    120 static struct file_operations gpioled_fops = {
    121         .owner = THIS_MODULE,
    122         .open = led_open,
    123         .read = led_read,
    124         .write = led_write,
    125         .release = led_release,
    126 };
    127 
    128 /*
    129  * @description : 驱动入口函数
    130  * @param : 无
    131  * @return : 无
    132  */
    133 static int __init led_init(void)
    134 {
    135         int ret = 0;
    136 
    137         /* 初始化信号量 */
    138         sema_init(&gpioled.sem, 1);
    ......
    198         return 0;
    199 }
    200 /*
    201  * @description : 驱动出口函数
    202  * @param : 无
    203  * @return : 无
    204  */
    205 static void __exit led_exit(void)
    206 {
    207         /* 注销字符设备驱动 */
    208         cdev_del(&gpioled.cdev);/* 删除 cdev */
    209         unregister_chrdev_region(gpioled.devid, GPIOLED_CNT);
    210 
    211         device_destroy(gpioled.class, gpioled.devid);
    212         class_destroy(gpioled.class);
    213 }
    214 
    215 module_init(led_init);
    216 module_exit(led_exit);
    217 MODULE_LICENSE("GPL");
    218 MODULE_AUTHOR("topeet");
    

    第 17 行,要使用信号量必须添加<linux/semaphore.h>头文件。
    第 34 行,在设备结构体中添加一个信号量成员变量 sem。
    第 46~59行,在 open函数中申请信号量,可以使用 down 函数,也可以使用 down_interruptible函数。如果信号量值大于等于 1 就表示可用,那么应用程序就会开始使用 LED 灯。如果信号量值为 0 就表示应用程序不能使用 LED 灯,此时应用程序就会进入到休眠状态。等到信号量值大于 1 的时候应用程序就会唤醒,申请信号量,获取 LED 灯使用权。
    第 114 行,在 release 函数中调用 up 函数释放信号量,这样其他因为没有得到信号量而进入休眠状态的应用程序就会唤醒,获取信号量。
    第 138 行,在驱动入口函数中调用 sema_init 函数初始化信号量 sem 的值为 1,相当于 sem是个二值信号量。
    总结一下,当信号量 sem 为 1 的时候表示 LED 灯还没有被使用,如果应用程序 A 要使用LED 灯,先调用 open 函数打开/dev/gpioled,这个时候会获取信号量 sem,获取成功以后 sem 的值减 1 变为 0。如果此时应用程序 B 也要使用 LED 灯,调用 open 函数打开/dev/gpioled 就会因为信号量无效(值为 0)而进入休眠状态。当应用程序 A 运行完毕,调用 close 函数关闭/dev/gpioled的时候就会释放信号量 sem,此时信号量 sem 的值就会加 1,变为 1。信号量 sem 再次有效,表示其他应用程序可以使用 LED 灯了,此时在休眠状态的应用程序 A 就会获取到信号量 sem,获取成功以后就开始使用 LED 灯。

    2 编写应用测试程序

    应用测试程序使用38.1.2中的应用测试程序即可。

    3 运行测试

    1、编译驱动程序
    添加Makefile文件,修改obj-m的值为 gpioled_semaphore.o,内容如下:

    KERNELDIR := /home/topeet/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga
    CURRENT_PATH := $(shell pwd)
    obj-m := gpioled_semaphore.o
    
    build: kernel_modules
    
    kernel_modules: 
            $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules
    clean:
            $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean
    

    首先我们在终端输入两个命令(设置两个环境变量):
    export ARCH=arm
    export CROSS_COMPILE=arm-linux-gnueabihf-
    然后使用“make”命令进行编译,生成gpioled_semaphore.ko驱动模块文件。

    2、运行测试
    将编译好的gpioled_semaphore.ko驱动模块文件拷贝到/lib/modules/4.1.15目录下(检查开发板根文件系统中有没有“/lib/modules/4.1.15”这个目录,如果没有的话需要自行创建一下。开发板中使用的是光盘资料里面提供的busybox文件系统,光盘资料的“i.MX6UL终结者光盘资料\08_开发板系统镜像\03_文件系统镜像\01_Busybox文件系统”目录下)。输入下面命令加载模块:
    depmod
    modprobe gpioled_semaphore
    驱动模块加载成功如图 3.1所示:
    在这里插入图片描述

    图 3.1

    驱动模块加载成功后,使用gpioled_atomic_test应用测试程序进行测试,测试流程和原子变量测试一样。使用下面的命令打开LED灯:
    ./gpioled_atomic_test /dev/gpioled 1 &
    然后紧接着输入LED灯关闭命令:
    ./gpioled_atomic_test /dev/gpioled 0 &
    注意两个命令都是运行在后台,第一条命令先获取到信号量,因此可以操作 LED 灯,将LED 灯打开,并且占有 25S。第二条命令因为获取信号量失败而进入休眠状态,等待第一条命令运行完毕并释放信号量以后才拥有 LED 灯使用权,将 LED 灯关闭,运行结果如图 3.2所示:
    在这里插入图片描述

    图 3.2

    可以看到有两次运行结果。
    卸载模块命令:
    rmmod gpioled_semaphore

    在这里插入图片描述

    展开全文
  • fork()后父子进程共享文件

    千次阅读 2014-04-10 11:04:18
    fork函数的特点概括起来就是“调用一次,返回两次”,在父进程中调用一次,在父进程和子进程中各返回...下面展示了一个返回本地时间给客户的简单客户-服务器模型,其中服务端为了并发处理来自客户的请求会调用fork创建
  • vdbench.pdf

    2018-04-04 10:09:12
    distribution= bottom(如果希望仅在最低级别创建文件)和 all(如果希望在所有目录中创建文件) openflags= 用于打开一个文件系统 (Solaris) 的 flag_list FWD:文件系统工作负载定义 fwd= 标识文件系统工作...
  • 上面方式引入的是Fly的默认实例(浏览器、Node、React Native中相同),你也可以自己创建Fly实例: // 浏览器和React Native var Fly=require("flyio/dist/npm/fly") // Node 入口 // var Fly=require("flyio/src/...
  • 进程与线程笔记 -6

    2021-03-01 10:37:21
    线程可以减小并发执行的时间和空间开销(线程创建时间比较快,不需要处理一些资源信息,直接共享。线程终止的时间段,因为需要释放的资源少。线程切换比进程切换时间少,线程切换不需要切换页表,而进程需要。线程...
  • 1. 在linux下编写一个应用程序,...当在命令行方式下执行“difftree <dir1> ”命令时,能够比较目录dir1和 目录dir2是否具有相同的结构,对相同的部分,进一步比较相同文件名的文件内容。列出比较的文件系统结构图。
  • GThread 相关接口

    2015-11-02 15:50:36
    线程带来的开销很小,内核无需单独复制进程的内存空间或文件描述符等,这就大量地节省了CPU时间,使得创建线程比进程的速度快数十倍。另外,多线程程序作为一种多任务、并发的工作方式,还有以下的优点:1)提高应用...
  • java源码包---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
  • python cookbook(第3版)

    2016-01-06 22:24:38
    5.19 创建临时文件和文件夹 5.20 与串行端口的数据通信 5.21 序列化Python对象 第六章:数据编码和处理 6.1 读写CSV数据 6.2 读写JSON数据 6.3 解析简单的XML数据 6.4 增量式解析大型XML文件 6.5 将字典...
  • CuteFTP9简易汉化版

    2014-04-11 12:31:30
    远程Backup-CuteFTP允许您创建的远程副本文件和文件夹在您的本地计算机上定期或在预定的时间。一种上传软件也自动压缩备份。 “退出”events-CuteFTP可以设置为自动退出,关闭你的电脑,运行病毒扫描,或任何其他任务在...
  • 最初的负载测试有10,000个请求(并发500个),并且写入和随后读取相同的索引显示平均时间为400毫秒。 尽管这是首选,但对于许多应用程序,甚至是那些没有稀疏数据的应用程序,这应该是可以接受的。 安装 可以通过pip...
  • java源码包2

    千次下载 热门讨论 2013-04-20 11:28:17
    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
  • java源码包3

    千次下载 热门讨论 2013-04-20 11:30:13
    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
  • java源码包4

    千次下载 热门讨论 2013-04-20 11:31:44
    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
  • JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器 Java编写的HTML浏览器源代码,一个很...
  • JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器 Java编写的HTML浏览器源代码,一个很...
  • JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器 Java编写的HTML浏览器源代码,一个很...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
  • 16.8.3 互斥、文件锁定和accept并发调用 147 16.8.4 无连接服务器中的预分配 148 16.8.5 预分配、突发通信量和NFS 149 16.8.6 多处理器上的预分配 149 16.9 延迟的从线程/进程分配 149 16.10 两种技术统一的...
  • rpm安装时,创建conf目录并创建默认的配置文件的功能 rpm安装时,需要手动修改mysql-proxyd文件中的proxy-dir, 现在直接在rpm安装后就修改好 解决了绑定后端连接断开时,客户端连接未及时断开的...
  • 3.6.1 利用vi创建和修改文件 46 3.6.2 用head和tail命令移动 47 3.7 文本的提取和排序 48 3.7.1 使用grep匹配模式 48 3.7.2 剪切、粘贴和联结文本 49 3.8 shell脚本 50 3.8.1 shell程序介绍 51 3.8.2...
  • redisStudy.zip

    2019-10-28 02:09:29
    1.redis支持的数据结构 string list hash set zset(基本回答) 加分项:另外redis还对这几种数据结构做了扩展,如GEO对位置...2.对不同的数据使用不同的失效时间,甚至对相同的数据、不同的请求使用不同的失效时间
  • 实例298 创建磁盘索引文件 实例299 快速全盘查找文件 实例300 获取磁盘所有文本文件 实例301 合并多个txt文件 实例302 批量复制指定扩展名的文件 实例303 将某文件夹中的文件进行分类存储 实例304 在指定目录...
  • 实例298 创建磁盘索引文件 实例299 快速全盘查找文件 实例300 获取磁盘所有文本文件 实例301 合并多个txt文件 实例302 批量复制指定扩展名的文件 实例303 将某文件夹中的文件进行分类存储 实例304 在指定目录...
  • dir 查看文件,参数:/Q显示文件及目录属系统哪个用户,/T:C显示文件创建时间,/T:A显示文件上次被访问时间,/T:W上次被修改时间 date /t 、 time /t 使用此参数即“DATE/T”、“TIME/T”将只显示当前日期和时间,...

空空如也

空空如也

1 2 3 4 5 6
收藏数 105
精华内容 42
关键字:

并发创建文件时间相同