使用_使用方法 - CSDN
精华内容
参与话题
  • 2014年java技术与框架使用情况统计报告

    千次下载 热门讨论 2020-07-30 23:32:27
    2014年java相关技术与框架使用情况统计报告。英文。由RebelLabs统计。 JAVA TOOLS AND TECHNOLOGIES LANDSCAPE FOR 2014 A GLOBAL SURVEY OF 2164 JAVA PROFESSIONALS 包括不同java框架、服务器、构建工具,静态代码...
  • 使用 “&” 来创建指向成员的指针 projectName filePath col CL 很新手人看到这个错误很蒙蔽,到底错哪了呢? 别急,别急!先看一下怎么修改吧,估计看了你会默然一笑 修改 在提示的那一行认真检查类成员函数...

    VS错误提示

    严重性 代码 说明 项目 文件 行 禁止显示状态 工具
    错误 C3867 “xxxx”: 非标准语法;请使用 “&” 来创建指向成员的指针 projectName filePath col CL

    很新手人看到这个错误很蒙蔽,到底错哪了呢?
    别急,别急!先看一下怎么修改吧,估计看了你会默然一笑

    修改

    在提示的那一行认真检查类成员函数的调用,如

    Widget.name
    //Widget.name(); 正确的调用方式
    

    原因

    你使用应该是类的成员函数,而不是类的成员变量
    当我们使用类的成员函数时,VS编辑器并不会自动帮我们加上圆括号(它会提示是成员函数,还是成员变量哦[图标颜色不同]),所以很多新手会忘记加()以表示函数的调用。
    当不加括号是,也就是函数不传入参数(void也是参数哦)的话,编译器将会理解成函数指针(在c++中,函数名就是函数的起始地址),但函数指针需要这样写

    &Widget.name
    

    所以就出现这样的错误提示

    总结

    VS对C++的支持比其他编辑器好,造成很多提示错误可能跟其他编辑器不一样,但是弄懂后反而帮助我们更好的理解C++的特性。
    由于VS编辑器不像QT那样函数调用会直接帮你加上(),在调用函数时会忘记加()导致了这种错误。你可能说它不可以学QT吗?上面已经说了,它还支持函数指针的处理,所以才没有采用这个机制。才其它阵营转来的新手不是很习惯,不过,用多了就好了。

    展开全文
  • vs2015如何使用pthread.h文件

    千次阅读 2017-08-13 12:12:51
    pthread下载 链接: https://pan.baidu.com/s/1boBGCZt 密码: x6hm 点击 项目 -> 属性->vc++目录,配置路径 点击调试->环境 输入值 path=%path%;D:\code\Pre-built.2\lib\;...使用 #include

    pthread下载

    链接: https://pan.baidu.com/s/1boBGCZt 密码: x6hm

    点击 项目 -> 属性->vc++目录,配置路径


    点击调试->环境 输入值 path=%path%;D:\code\Pre-built.2\lib\; $(LocalDebuggerEnvironment)


    使用

    #include "pthread.h"
    #pragma comment(lib, "pthreadVC2.lib")

    注:如果报 缺少pthreadvc2.dll 错误,则将pthreadvc2.dll 拷贝到 项目目录下的可执行文件的同一目录【如proj.win32/Debug.win32】

    展开全文
  • 使用#include <pthread.h>

    千次阅读 2012-11-02 16:56:13
    在Linux中使用线程相关的东西就要使用到这个头文件,但这还不算。如果仅仅使用这个头文件,会出现错误:   undefined reference to `pthread_create' collect2: ld returned 1 exit status make: *** ...
    在Linux中使用线程相关的东西就要使用到这个头文件,但这还不算。如果仅仅使用这个头文件,会出现错误:
    

     

    undefined reference to `pthread_create'
    collect2: ld returned 1 exit status
    make: *** [threadid] Error 1

     

         之所以出现这样的错误,是因为我们没有链接相应的函数库。所以在编译的时候要加上 –lpthread 选项。

         Makefile文件如下:

    CC = gcc
    CFLAGS = -I/home/cat/apue/apue.2e/include -Wall -g
    
    threadid: threadid.o
        $(CC) $(CFLAGS) -o $@ $^ -lpthread
    展开全文
  • pthread的使用

    2019-04-12 16:02:27
    写一个test_pthread.c,练习pthread的用法 #include <pthread.h> #include <unistd.h> #include <stdio.h> void *thread(void *str) { int i; for (i = 0; i < 10;... s...

     

    写一个test_pthread.c,练习pthread的用法

    
    #include <pthread.h>
    #include <unistd.h>
    #include <stdio.h>
    
    void *thread(void *str)
    {
        int i;
        for (i = 0; i < 10; ++i)
        {
            sleep(2);
            printf( "This in the thread : %d\n" , i );
        }
        return NULL;
    }
     
    int main()
    {
        pthread_t pth;
        int i;
        int ret = pthread_create(&pth, NULL, thread, NULL);
        
         pthread_join(pth, NULL);
        for (i = 0; i < 10; ++i)
        {
            sleep(1);
            printf( "This in the main : %d\n" , i );
        }   
        return 0;
    }

    编译的时候发现,报错对‘pthread_create’未定义的引用,由于pthread库不是Linux系统默认的库,连接时需要使用库libpthread.a,所以在使用pthread_create创建线程时,在编译中要加-lpthread参数:然后重新编译

    gcc -o pthread pthread_test.c -lpthread

    运行

    ./pthread

    运行结果

    This in the thread : 0
    This in the thread : 1
    This in the thread : 2
    This in the thread : 3
    This in the thread : 4
    This in the thread : 5
    This in the thread : 6
    This in the thread : 7
    This in the thread : 8
    This in the thread : 9
    This in the main : 0
    This in the main : 1
    This in the main : 2
    This in the main : 3
    This in the main : 4
    This in the main : 5
    This in the main : 6
    This in the main : 7
    This in the main : 8
    This in the main : 9

    这说明:pthread_join函数的调用者在等待子线程退出后才继续执行!

      pthread_join函数:

       函数pthread_join用来等待一个线程的结束。
       函数定义: int pthread_join(pthread_t thread, void **retval);
       描述 :
       pthread_join()函数,以阻塞的方式等待thread指定的线程结束。当函数返回时,被等待线程的资源被收回。如果进程已经结束,那么该函数会立即返回。并且thread指定的线程必须是joinable的。

       参数 :
       thread: 线程标识符,即线程ID,标识唯一线程。
       retval: 用户定义的指针,用来存储被等待线程的返回值。
       返回值 : 0代表成功。 失败,返回的则是错误号。
    现在屏蔽pthread_join函数:

    运行结果为:

    This in the main : 0
    This in the thread : 0
    This in the main : 1
    This in the main : 2
    This in the thread : 1
    This in the main : 3
    This in the main : 4
    This in the thread : 2
    This in the main : 5
    This in the main : 6
    This in the thread : 3
    This in the main : 7
    This in the main : 8
    This in the thread : 4
    This in the main : 9

    说明在子线程没有运行完毕,main函数就退出了。

     pthread_create函数:

     声明:

      int pthread_create(pthread_t *thread,
    
                        const pthread_attr_t *restrict_attr,
    
                        void*(*start_rtn)(void*),
    
                        void *restrict arg);

       参数:

       第一个参数*thread为指向线程标识符的指针。
       第二个参数*restrict_attr用来设置线程属性,上面也可以用NULL,表示使用默认的属性。
       第三个参数是线程运行函数的起始地址。
       最后一个参数是运行函数的参数,NULL表示无参数。
       另外,在编译时注意加上-lpthread参数,以调用链接库。因为pthread并非Linux系统的默认库,而是posix线程库,在Linux中将其作为一个库来使用,因此加上 -lpthread(或-pthread)以显示的链接该库。函数在执行错误时的错误信息将作为返回值返回,并不修改系统全局变量errno,当然也无法使用perror()打印错误信息。

        

       pthread_t:pthread_t用于声明线程ID!

       类型定义:
       typedef unsigned long int pthread_t;
       //come from /usr/include/bits/pthread.h
       sizeof (pthread_t) =4;

       

        pthread_attr_init函数:

        声明:int pthread_attr_init(pthread_attr_t*attr);

       返回值:返回0,表示函数初始化对象成功。失败时返回一个错误代码。
       参数:指向一个线程属性的指针。
    函数例程如下:

    int main(int argc, char *argv[])
    {
    	pthread_t tid;/*线程标示符*/
    	pthread_attr_t attr;
     
    	if (argc != 2)/*如果参数不为2个*/
    	{
    		fprintf (stderr, "usage:a.out<integer value>\n");/*报错*/
    		return -1;
    	}
    	if (atoi(argv[1] ) < 0)
    	{
    		fprintf (stderr, "%d must be <= 0\n", atoi(argv[1]));
    		return -1;
    	}
    	pthread_attr_init(&attr); /*初始化,得到默认的属性值*/
    	pthread_create(&tid, &attr, runner, argv[1]);/*创建一个线程*/
    	pthread_join(tid, NULL);/*等待子线程执行完毕*/
     
    	printf ("sum = %d\n", sum);
    	return 0;
    }
     
    void *runner(void *param)/*子线程将会执行这个函数*/
    {
    	int i, upper = atoi(param);
    	sum = 0;
    	printf("upper:%d\n",upper);
    	for (i = 1; i <= upper; i++)
    	{
    		sum += i;
    	}
    	pthread_exit(0);
    }

    运行:

     ./pthread 1

    得到结果

    upper:1
    sum = 1

    如果屏蔽

    //pthread_attr_init(&attr); /*初始化,得到默认的属性值*/

    运行结果时,发现sum=0,没有upper值打印,说明,没有进入子线程,如果把attr变为NULL,

    pthread_create(&tid, NULL, runner, argv[1]);/*创建一个线程*/

    运行,输出结果又是

    upper:1
    sum = 1
    展开全文
  • VS2017配置使用头文件pthread.h

    千次阅读 2018-10-20 16:28:06
    原文链接: ... POSIX线程(POSIX threads),简称Pthreads,是线程的POSIX标准。该标准定义了创建和操纵线程的一整套API。在类...
  • Pycharm简单使用教程

    万次阅读 多人点赞 2019-07-12 10:35:43
    1、下载pycharm pycharm是一种Python IDE,能够帮助我们在编写代码时提高效率。 网上提供的有专业版和教育版之分。 专业版是收费的,功能更全面点。...教育版或社区版是阉割版本,但它是免费的。...
  • VSCode详细使用教程

    万次阅读 多人点赞 2019-09-05 05:17:48
          VSCode(Visual Studio Code)是由微软研发的一款免费、开源的跨平台文本(代码)编辑器,算是目前前端开发几乎完美的软件开发工具。 1.VSCode下载 ...2.VSCode汉化 ...
  • STM32CubeIDE使用笔记(01):基础说明与开发流程

    万次阅读 多人点赞 2019-08-02 11:34:31
    文章目录
  • 线上发现有机器,在发生某块业务大量请求时,后面就没有日志了,查看线程状态,如图1,发现很多线程被阻塞了,查看代码发现,用到了scan,如图2,百度之后,发现该操作不会自动释放redis连接,导致redis连接被占满,...
  • 简述水平布局,在水平方向上排列控件,即:左右排列。水平布局(QHBoxLayout)、垂直布局(QVBoxLayout)均继承自...总结使用下面介绍下水平布局的基本使用。效果源码下面,我们创建5个按钮,然后添加至水平不
  • compiler warning (level 1) C4482warning description:使用了非标准扩展: 限定名中使用了枚举“enum”当引用类型内的枚举时,无需指定枚举的名称。文件范围的枚举定义相当于常量,也不需要限定名。example: C4482...
  • 1、【CPU 使用】 CPU的使用百分比,柱状图表示实时的CPU使用率。 2、【CPU 使用记录】 CPU使用量随时间的变化曲线,其中红线则表示系统内核的使用率(红线需点击任务管理器的查看菜单,选中“显示内核时间”项)。 3
  • Android Studio设置优化导入的类和包

    万次阅读 2015-06-17 11:17:06
    使用Eclipse开发Android应用时,开发者往往会使用Shift+Ctrl+O快捷键来快速导入所有的包,和移除已经导入但还未使用的包。但这个快捷键在Android Studio没人是给有开启的,下面就和大家分享在Android Studio下使用...
  • python学习笔记5.2-包和模块的导入

    万次阅读 2017-09-28 21:29:26
    在理解什么是包以及什么是模块之后,就要学会如何去导入包或者模块了,本文主要介绍如何导入包以及...导入包的核心是使用关键词import以及搭配其他的一些关键词(from,as)等。因而根据不用的需要会有以下几种导入形式。
  • 开源项目sweet-alert-dialog导入和错误总结

    万次阅读 热门讨论 2016-04-02 00:19:28
    使用的是Android Studio,常见的导入第三方库有导入*.jar包和导入java类库(含源代码)。 1.导入*.jar包,这个很简单,就直接将jar包copy到librar里面,然后使用 2.使用今天由于要使用sweet-alert-dialog项目,...
  • CSS高级技巧

    万次阅读 2016-02-22 20:38:27
    使用 :not() 在菜单上应用/取消应用边框给body添加行高所有一切都垂直居中逗号分隔的列表使用负的 nth-child 选择项目对图标使用SVG优化显示文本对纯CSS滑块使用 max-height继承 box-sizing表格单元格等宽用...
  • <br /> 之前一直使用Zend Studio7调试PHP,最近打算开始使用Zend Studio8,昨天装了Zend Studio 8后打算使用Zend Studio中文版,网上找了下在线的Zend Studio 8 汉化包对Zend Studio8进行汉化,感觉非常...
  • vue第六天

    万次阅读 2020-01-04 12:43:28
    有时候使用npm i node-sass -D装不上,这时候,就必须使用 cnpm i node-sass -D 在普通页面中使用render函数渲染组件 在webpack中配置.vue组件页面的解析 运行cnpm i vue -S将vue安装为运行依赖; 运行cnpm i ...
  • LinearLayout增加divider分割线

    万次阅读 2014-01-06 15:15:38
    android:showDividers="middle|beginning|end" 分割线如果是图片那就直接使用图片就行,如果要使用颜色就必须使用shape来显示,直接使用颜色或Color是没有用的 使用shape的时候要注意设置size属
1 2 3 4 5 ... 20
收藏数 14,183,519
精华内容 5,673,407
关键字:

使用