C++多线程调用JNI的问题

在主线程中可以findclass,但是在子线程中却找不到,找的是同一个class,在子线程正可以找到系统的类,比如java/long/String

1个回答

http://blog.csdn.net/booirror/article/details/37778283
这篇文章里,有一些介绍

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C++多线程调用JNI的问题

在主线程中可以findclass,但是在子线程中却找不到,找的是同一个class,在子线程正可以找到系统的类,比如java/long/String

AndroidJNI如何在线程中调用java的非静态方法

我最近在使用Android里的JNI,我发现只要调用的是GetStaticMethodID,无论是用CallVoidMethod还是CallStaticVoidMethod,都可以正常调用JAVA里的静态方法,这是为什么? 还有,在C 中,非主线程中,我用过AttachCurrentThread,可调用静太的JAVA方法,但无法使用非静态的方法,是我使用错了吗?

Java调用JNI第一次成功返回结果,第二次程序直接挂死

有一个需求是用c++算法算得当前音频是否为异常音,大概会每3秒调用一次c++程序用来识别音频文件,其中c++和Java是用的JNI框架连接的。每当我运行测试,第一次识别能够正确返回值,第二次执行到调用JNI时程序直接挂死。不知道是什么原因 ``` //加载动态库 static { System.loadLibrary("onap"); } public native boolean AnomalyDetectionJNI(String audioPath); ``` 程序挂死打印出: ``` Process finished with exit code -1073740791 (0xC0000409) ```

java调用JNI的时候老是抛异常,求帮助

java调用jni的时候老是抛Exception in thread "main" java.lang.UnsatisfiedLinkError, 我从同一个.dll中导出的函数方法能够找到,用depends打开动态库也能发现封装的 函数名,就是Java调用的时候出现这个错误,求大神们帮帮忙啊 。。。

关与jni多层调用C/C++

最近做一个项目,逻辑大概是这样子的。jni直接生成的接口(func.c),调用C代码已经成功(暂且叫做func1.c),func1.c还要调用一个func2.c。 我把func2.c,制作成了动态库的形式。func2.h有。我的这个func1.c怎么调用这个库。怎么尝试总是报错。 望前辈们指教下,我才注册的这个,么有BB。在此谢谢。

tomcat注册服务后调用jni出现问题

我使用tomcat6+jdk6(64位)做服务器开发。 在服务器端使用jni调用c++来播放音频: c++主要代码如下: function(JNIEnv *env, jclass c, jstring path) { const char* str; str = env->GetStringUTFChars(path, NULL); return sndPlaySound(str, SND_SYNC); } 使用eclipse启动tomcat,或者使用tomcat6.exe,或者使用startup.bat启动,都能正常播放声音。 但是注册成windows服务后,就不能播放了。没有报错,没有异常,jni调用返回值位true。 因为是同步播放的,我的这段音频时间是10秒左右,但是我在调用jni语句前后分别打了log,在服务方式启动的情况下,这两句log打印时间完全相同,也就是说这个调用瞬间就返回了,没有报错,但是也没有播放。 查了好多资料了,基本没有讨论这么细的问题的,找到有网友说tomcat注册服务后有权限问题,但是我看是system用户啊,这是最大权限了吧。而且我参照这位网友说的,改为用administrator(也就是我用startup等方式运行时使用的用户)来启动服务,还是同样的问题。 实在没招了,求各位指导。

android JNI调用SDK底层C方法

如题:因为上层没法去找到方法,只有想办法去调底层C的方法,SDK源码make出来的.so库文件可以用来做jni的调用么? 底层.c文件里面没有申明JNI,我需要如何去申明

java 调用 jni 一点不会

C++ 代码 [code="c++"] #include <winsock2.h> #include <stdio.h> #include <stdlib.h> #include <httpext.h> #include <windef.h> #include <Nb30.h> #pragma comment(lib,"ws2_32.lib") #pragma comment(lib,"netapi32.lib") void CheckIP(void) { WSADATA wsaData; char name[155]; char *ip; PHOSTENT hostinfo; if ( WSAStartup( MAKEWORD(2,0), &wsaData ) == 0 ) { if( gethostname ( name, sizeof(name)) == 0) { if((hostinfo = gethostbyname(name)) != NULL) { ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list); printf(" IP地址: %s ",ip); } } WSACleanup( ); } } int getMAC(char * mac) { NCB ncb; typedef struct _ASTAT_ { ADAPTER_STATUS adapt; NAME_BUFFER NameBuff [30]; }ASTAT, *PASTAT; ASTAT Adapter; typedef struct _LANA_ENUM { UCHAR length; UCHAR lana[MAX_LANA]; }LANA_ENUM; LANA_ENUM lana_enum; UCHAR uRetCode; memset(&ncb, 0, sizeof(ncb)); memset(&lana_enum, 0, sizeof(lana_enum)); ncb.ncb_command = NCBENUM; ncb.ncb_buffer = (unsigned char *)&lana_enum; ncb.ncb_length = sizeof(LANA_ENUM); uRetCode = Netbios(&ncb); if(uRetCode != NRC_GOODRET) return uRetCode; for(int lana=0; lana<lana_enum.length; lana++) { ncb.ncb_command = NCBRESET; ncb.ncb_lana_num = lana_enum.lana[lana]; uRetCode = Netbios(&ncb); if(uRetCode == NRC_GOODRET) break; } if(uRetCode != NRC_GOODRET) return uRetCode; memset(&ncb, 0, sizeof(ncb)); ncb.ncb_command = NCBASTAT; ncb.ncb_lana_num = lana_enum.lana[0]; strcpy((char*)ncb.ncb_callname, "*"); ncb.ncb_buffer = (unsigned char *)&Adapter; ncb.ncb_length = sizeof(Adapter); uRetCode = Netbios(&ncb); if(uRetCode != NRC_GOODRET) return uRetCode; sprintf(mac,"%02X-%02X-%02X-%02X-%02X-%02X", Adapter.adapt.adapter_address[0], Adapter.adapt.adapter_address[1], Adapter.adapt.adapter_address[2], Adapter.adapt.adapter_address[3], Adapter.adapt.adapter_address[4], Adapter.adapt.adapter_address[5] ); return 0; } int main(void) { CheckIP(); char mac[200]; getMAC(mac); printf(" mac地址 : %s ",mac); return 0; } [/code] 谁帮助写一个 java调用 这个c++生成的 dll 程序目的 : java通过jni 调用 dll 获取客户端的 网卡 MAC 自己对这个一点没接触过....

Android JNI 调用非JNI规范的so文件

请问Android中可以使用JNI调用非JNI规范纯C函数编译出的so文件吗 我使用的是针对特殊平台产生的非JNI规范的so文件,在Android官网看到谷歌采用了一种新的make方式,通过Cmake和CMakeLists.txt来链接编译 我看到官方的源码[谷歌官方示例](https://github.com/googlesamples/android-ndk/tree/master/native-activity/app/src/main/cpp "")直接放在默认的libry目录下,我想让他在自己的目录下找,但是最新的这种CMake方式,不知道so文件和头文件的目录应该怎么建立。[谷歌官方NDK](https://developer.android.com/studio/projects/add-native-code.html#new-project "") ``` add_library( iconv SHARED IMPORTED ) set_target_properties( # Specifies the target library. iconv # Specifies the parameter you want to define. PROPERTIES IMPORTED_LOCATION # Provides the path to the library you want to import. /libs/src/armeabi/libiconv.so) #include_directories( imported-lib/src/include/ ) target_link_libraries( # Specifies the target library. native-lib # Links the target library to the log library # included in the NDK. iconv ${log-lib} ) ``` 但是Make时一直报错,显示iconv.so needed by native-lib.so ; missing or no known rule to make it

JNI 中多线程创建问题请各位指教

大家好,我刚接触JNI开发,遇到一个多线程方面的问题,不知道哪位大神能够帮帮忙。 我在看别人写的代码,里面有一段如下: Int ret_val = 0; If((smd_dev_up = open(SMD_DEV_UP, O_RDWR)) <= 0) { Return -1; } If((smd_dev_down = open(SMD_DEV_down, O_RDWR)) <= 0) { Return -1; } If(blocking_write) { Icotl(smd_dev_up, SMD_PKT_IOCTL_BLOCKING_WRITE, &blocking_write); Icotl(smd_dev_down, SMD_PKT_IOCTL_BLOCKING_WRITE, &blocking_write); } 其中SMD_DEV_UP被define成 “/dev/encrypt_voice_TX” SMD_DEV_DOWN被define成 “/dev/encrypt_voice_RX” SMD_PKT_IOCTL_BLOCKING_WRITE和SMD_PKT_IOCTL_BLOCKING_WRITE是定义的两个设备控制命令。 问题: 作者得注释说上面的程序段启动了两个线程,但是我不明白哪里启动了两个线程,是两个open函数吗?在linux下启动线程不是一般应该用pthread_create吗?

Android studio中使用Jni同时调用几个不同c代码里面的方法

我按照网上的方法简单的实现了jni调用c,现在我想改成我所需要的c里面的方法,怎么实现?

安卓jni调用传入参数问题

请问一下,一个so库,c是这么调用的 uint8_t* id = NULL; uint32_t length = 0; func(&id, &length); 那么用java jni调用的时候参数怎么写呢,,,小白一个,比较急求大神帮助 传func(String a, Long b)好像并不可以啊

android jni调用底层函数

在android系统的 sys/devices/platform 目录下有stm.c文件里面有个write( )函数 在app中使用jni要怎么去调用?求大神帮忙指点。

C++ 调用Jni 返回json字符串时产生的问题,穿入参数后返回的字符串是空的

java代码如下: package com.iscas.test; import java.util.ArrayList; import com.google.gson.Gson; import net.sf.json.JSONSerializer; public class Test { public String getItemList(int id,String name,float score) { ItemList list = new ItemList(); Item item = new Item(); item.id = id; item.name = name; item.score = score; list.itemList = new ArrayList<Item>(); list.itemList.add(item); list.itemList.add(item); list.itemList.add(item); list.num = 3; Gson gson = new Gson(); String json = gson.toJson(list).toString(); return json; } } 穿入参数,返回json字符串,相应的C++ 调用jni代码如下: #include <jni.h> #include <iostream> #include <string> #include "windows.h" using namespace std; #ifdef _WIN32 #define PATH_SEPARATOR ';' #else #define PATH_SEPARATOR ':' #endif jstring NewJString(JNIEnv *env, LPCTSTR str); string JStringToCString (JNIEnv *env, jstring str); int main() { JavaVMOption options[3]; JNIEnv *env; JavaVM *jvm; JavaVMInitArgs vm_args; long status; jclass test,item,itemList; jmethodID mid; options[0].optionString = "-Djava.compiler=NONE"; options[1].optionString = "-Djava.class.path=."; options[2].optionString = "-verbose:jni"; //用于跟踪运行时的信息 memset(&vm_args, 0, sizeof(vm_args)); vm_args.version = JNI_VERSION_1_6; vm_args.nOptions = 1; vm_args.options = options; status = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args); if (status != JNI_ERR) { test = env->FindClass("com/iscas/test/Test"); item = env->FindClass("com/iscas/test/Item"); itemList = env->FindClass("com/iscas/test/ItemList"); if(test !=0 && item!=0) { mid = env->GetMethodID(test, "getItemList", "(ILjava/lang/String;F)Ljava/lang/String;"); if(mid != 0) { jobject obj_test = env->AllocObject(test); jobject obj_item = env->AllocObject(item); mid = env->GetMethodID(test,"getItemList","(ILjava/lang/String;F)Ljava/lang/String;"); jint instance_id = 10; const char arg[] = "jom"; jstring instance_name = NewJString(env, arg); jfloat instance_score = 98.5; jstring s = (jstring)env->CallObjectMethod(obj_test,mid,instance_id,instance_name,instance_score); cout<<s<<endl; string ss = JStringToCString(env,s); cout<<ss<<endl; } } } } PS1:在工程目录下 com/iscas/test/ 路径下放置着 Test.class,Item.class,ItemList.class以及 gson-2.2.4.jar,jdom-2.0.5.jar,json-lib-2.4-jdk15.jar。 PS2:通过设置断点来看, jstring s = (jstring)env->CallObjectMethod(obj_test,mid,instance_id,instance_name,instance_score); 这句话穿入的参数是正确的,返回的却为空。 还请各位大神不吝赐教!!

jni创建虚拟机失败问题,c++dll调用java类在VM初始化中出现错误

![图片说明](https://img-ask.csdn.net/upload/201706/15/1497487523_282629.png) 如上图错误,代码如下: string tmp0 ="-Djava.class.path=.;"; //cout<<tmp0<<endl; string configTmp = tmp0 + m_p0 + ";" + m_p1; //cout<<configTmp<<endl; options[0].optionString = (char*)configTmp.c_str(); vm_args.version = JNI_VERSION_1_6; //设置版本号 vm_args.nOptions = 1; vm_args.options = options; vm_args.ignoreUnrecognized = JNI_TRUE; //定义一个函数指针,下面用来指向JVM中的JNI_CreateJavaVM函数 typedef jint (WINAPI *PFunCreateJavaVM)(JavaVM **, void **, void *); //const wchar_t szJvmPath[]=L"D:\\Java\\jdk1.8.0_131\\jre\\bin\\client\\jvm.dll"; int p2Len = m_p2.length(); WCHAR *szJvmPath = new WCHAR[p2Len+1]; MultiByteToWideChar(0, 0, m_p2.c_str(), -1, szJvmPath, p2Len+1); cout<<szJvmPath<<endl; hInstance = ::LoadLibrary(szJvmPath); cout<<"成功"<<endl; delete []szJvmPath; szJvmPath = NULL; if (hInstance == NULL) { cout<< "LoadLibrary False"<<endl; cout<<::GetLastError()<<endl; return false; } cout<<"成功1"<<endl; //取得里面的JNI_CreateJavaVM函数指针 PFunCreateJavaVM funCreateJavaVM = (PFunCreateJavaVM)::GetProcAddress(hInstance, "JNI_CreateJavaVM"); cout<<"成功2"<<endl; long status = (*funCreateJavaVM)(&jvm, (void**)&env, &vm_args); //查找类,返回JAVA类的CLASS对象 //jclass cls = env->FindClass("D:\\javaOfWorkspace\\Test20170502\\src\\test\\c_call_j"); cout<<"成功3"<<endl; cls = env->FindClass("test20170505/ParserDemo"); 在: long status = (*funCreateJavaVM)(&jvm, (void**)&env, &vm_args);这一步出现错误,如果这个cpp不封装到dll中则能正常运行,封装以后就出现错误,其他配置都一样的,求大神解决。

java JNI 调用 c++ 动态库.so 文件抛错,如何调试?

![图片说明](https://img-ask.csdn.net/upload/201711/01/1509499054_793886.png) # Problematic frame: # C [libc.so.6+0x7a451] 为什么抛错的是这个?C标准库libc.so.6是存在的,应该是yum gcc 的时候就已经装好了

OpenCV for Android,jni,库调用的问题

我现在用android studio开发工程,底层算法依旧在使用c++,用的是opencv的库,在完成opencv库加载之后。我build和run都没有问题,写的与opencv有关的函数都没有报错。 但是在跑起来以后,opencv的一些基础函数崩溃,代码在debug模式下已经验证没有越界等bug。貌似是opencv的函数调用不了。附上文件截图,请有经验的帮我看看,是哪个地方出了问题。 目前仅仅只有opencvjava4是生效的,其他.a的库貌似都没有生效,注释不注释都不影响build和run,且报错的位置都一样。如下图,仅仅是一个基础的函数mat.clone()报错。感觉链接的.a有问题,并没有生效 ![图片说明](https://img-ask.csdn.net/upload/201904/18/1555559630_96704.png) ![图片说明](https://img-ask.csdn.net/upload/201904/18/1555559304_443417.png) ![图片说明](https://img-ask.csdn.net/upload/201904/18/1555559316_913435.png) ``` target_link_libraries(tracking # android lib ${log-lib} ${android-lib} # opencv opencv_java4 # opencv_core # opencv_highgui # opencv_imgproc # opencv_dnn # opencv_features2d # opencv_flann # opencv_imgcodecs # opencv_ml # opencv_objdetect # opencv_photo # opencv_stitching # opencv_video # opencv_videoio # opencv_calib3d # quirc # tbb # IlmImf # cpufeatures # libjasper # libjpeg-turbo # libpng # libprotobuf # libtiff # libwebp # tegra_hal ) ``` 请教大佬,这个问题应该怎么解决?

JNI 调用GetMethodID 获得System.out.println()方法的jmethodid时出错的问题。

症状如下: 作为练习,为了在C代码中调用java的System.out.println()方法,我写了如下代码。 java代码片段如下: [size=xx-small] public class JNI_JAVA { public static native void println(String str); // 在C代码里打算调用System.out.println()。 public static void main(String[] args) { JNI_JAVA.println("Lady Gaga"); } } [/size] 生成如下头文件 JNI_JAVA.h 的片段: [size=xx-small] /* * Class: JNI_JAVA * Method: println * Signature: (Ljava/lang/String;)V */ JNIEXPORT void JNICALL Java_JNI_1JAVA_println (JNIEnv *, jclass, jstring); [/size] 以下是我自己写的C代码 JNI_JAVA.C的片段: [size=xx-small] /* * Class: JNI_JAVA * Method: println * Signature: (Ljava/lang/String;)V */ JNIEXPORT void JNICALL Java_JNI_1JAVA_println (JNIEnv *env, jclass clz, jstring str) { //获取java.lang.system类 jclass cls_system = (**env).FindClass(env, "java/lang/System"); if (NULL == cls_system) { fprintf(stderr, "Error %s:%d\n", __FILE__, __LINE__); return; } //获取System.out的FID jfieldID fid_out = (**env).GetStaticFieldID(env, cls_system, "out", "Ljava/io/PrintStream;"); if (NULL == fid_out) { fprintf(stderr, "Error %s:%d\n", __FILE__, __LINE__); return; } fprintf(stderr, "alive1\n");//正常输出 //获取System.out的对象 jobject obj_out = (**env).GetStaticObjectField(env, cls_system, fid_out); if (NULL == obj_out) { fprintf(stderr, "Error %s:%d\n", __FILE__, __LINE__); return; } fprintf(stderr, "alive2\n");//正常输出 //[color=red]百分百死在下面这一句[/color] //获取System.out.println()的MID jmethodID mid_println = (**env).GetMethodID(env, obj_out, "println", "(Ljava/lang/String;)V"); fprintf(stderr, "alive3\n");//这句不会输出,下面也不会执行 if (NULL == mid_println) { fprintf(stderr, "Error %s:%d\n", __FILE__, __LINE__); return; } (**env).CallVoidMethod(env, obj_out, mid_println, str); fprintf(stderr, "Yeah\n"); } [/size] 执行到 jmethodID mid_println = (**env).GetMethodID(env, obj_out, "println", "(Ljava/lang/String;)V"); 这一句时程序会死掉,同时给出以下输出: //下面的alive1,alive2是我故意输出的 [size=xx-small]alive1 alive2 # # An unexpected error has been detected by HotSpot Virtual Machine: # # SIGSEGV (0xb) at pc=0x00000000, pid=11192, tid=3076175552 # # Java VM: Java HotSpot(TM) Client VM (1.5.0_19-b02 mixed mode, sharing) # Problematic frame: # C 0x00000000 # # An error report file with more information is saved as hs_err_pid11192.log # # If you would like to submit a bug report, please visit: # http://java.sun.com/webapps/bugreport/crash.jsp # [/size] [b]问题: 我调用 jmethodID mid_println = (**env).GetMethodID(env, obj_out, "println", "(Ljava/lang/String;)V"); 为啥会死?? 是不是违反了什么安全限制,所以才使得程序死掉?[/b]

关于在Android中的Service类中加载JNI函数的问题。

之前用JNI的方法实现了从服务端到客户端的推送消息。 在Activity下加载库是没问题的。 但是在Service类下加载之后却不能调用。 这是为什么呢?

请问JAVA中native方法对线程和JNI的解析和在CodeCache的保存有何影响和不同?

多线程状态下 当前线程调用到 native 方法时,对于 JVM 来说,是对其他线程进行 阻塞,等待当前线程执行完 native 方法,还是在执行 native 方法过程中,任然可以进行多线程的切换执行?(目前没有环境,无法测试) 那么当调用到 native(如:C++) 方法时,会被 JNI 在 Code Cache 解析为一条指令,还是继续解析 native 方法得到相应指令?如果是继续解析 native 方法 ,那么解析后的机器码,在 Code Cache 中的保存和 将 JAVA 代码解析后的机器码保存有什么不同? 谢谢。

Python可以这样学(第一季:Python内功修炼)

董付国系列教材《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》配套视频,讲解Python 3.5.x和3.6.x语法、内置对象用法、选择与循环以及函数设计与使用、lambda表达式用法、字符串与正则表达式应用、面向对象编程、文本文件与二进制文件操作、目录操作与系统运维、异常处理结构。

获取Linux下Ftp目录树并逐步绑定到treeview

在linux下抓取目录树,双击后获取该节点子节点(逐步生成)。另外有两个类,一个是windows下的(一次性获取目录树),一个是linux下的(足部获取目录树)

NS网络模拟和协议仿真源代码

NS网络模拟和协议仿真源代码,包含代码说明及协议分析

简单的NS3网络模拟仿真(计算机网络作业)

简单的NS3网络模拟仿真,内附有PPT演示。论文评述。以及简单的安装教程。

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

cuda开发cutilDLL

包括cutil32.dll、cutil32D.dll、cutil32.lib、cutil32D.lib,以及附带的glew32.lib/freeglut.lib

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

Tensorflow与python3.7适配版本

tensorflow与python3.7匹配的最新库,更新了python3.7以后可以自行下载,或者去国外python的扩展包下载界面自行下载。

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

专为程序员设计的数学课

<p> 限时福利限时福利,<span>15000+程序员的选择!</span> </p> <p> 购课后添加学习助手(微信号:csdn590),按提示消息领取编程大礼包!并获取讲师答疑服务! </p> <p> <br> </p> <p> 套餐中一共包含5门程序员必学的数学课程(共47讲) </p> <p> 课程1:《零基础入门微积分》 </p> <p> 课程2:《数理统计与概率论》 </p> <p> 课程3:《代码学习线性代数》 </p> <p> 课程4:《数据处理的最优化》 </p> <p> 课程5:《马尔可夫随机过程》 </p> <p> <br> </p> <p> 哪些人适合学习这门课程? </p> <p> 1)大学生,平时只学习了数学理论,并未接触如何应用数学解决编程问题; </p> <p> 2)对算法、数据结构掌握程度薄弱的人,数学可以让你更好的理解算法、数据结构原理及应用; </p> <p> 3)看不懂大牛代码设计思想的人,因为所有的程序设计底层逻辑都是数学; </p> <p> 4)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; </p> <p> 5)想修炼更好的编程内功,在遇到问题时可以灵活的应用数学思维解决问题。 </p> <p> <br> </p> <p> 在这门「专为程序员设计的数学课」系列课中,我们保证你能收获到这些:<br> <br> <span> </span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">①价值300元编程课程大礼包</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">②应用数学优化代码的实操方法</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">③数学理论在编程实战中的应用</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">④程序员必学的5大数学知识</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">⑤人工智能领域必修数学课</span> </p> <p> <br> 备注:此课程只讲程序员所需要的数学,即使你数学基础薄弱,也能听懂,只需要初中的数学知识就足矣。<br> <br> 如何听课? </p> <p> 1、登录CSDN学院 APP 在我的课程中进行学习; </p> <p> 2、登录CSDN学院官网。 </p> <p> <br> </p> <p> 购课后如何领取免费赠送的编程大礼包和加入答疑群? </p> <p> 购课后,添加助教微信:<span> csdn590</span>,按提示领取编程大礼包,或观看付费视频的第一节内容扫码进群答疑交流! </p> <p> <img src="https://img-bss.csdn.net/201912251155398753.jpg" alt=""> </p>

实现简单的文件系统

实验内容: 通过对具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 要求: 1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个简

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

四分之一悬架模型simulink.7z

首先建立了四分之一车辆悬架系统的数学模型,应用MATLAB/Simulink软件建立该系统的仿真模型,并输入路面激励为随机激励,控制不同的悬架刚度和阻尼,选用最优的参数得到车辆悬架的振动加速度变化曲线

MFC一站式终极全套课程包

该套餐共包含从C小白到C++到MFC的全部课程,整套学下来绝对成为一名C++大牛!!!

C++语言基础视频教程

C++语言基础视频培训课程:本课与主讲者在大学开出的程序设计课程直接对接,准确把握知识点,注重教学视频与实践体系的结合,帮助初学者有效学习。本教程详细介绍C++语言中的封装、数据隐藏、继承、多态的实现等入门知识;主要包括类的声明、对象定义、构造函数和析构函数、运算符重载、继承和派生、多态性实现等。 课程需要有C语言程序设计的基础(可以利用本人开出的《C语言与程序设计》系列课学习)。学习者能够通过实践的方式,学会利用C++语言解决问题,具备进一步学习利用C++开发应用程序的基础。

Java8零基础入门视频教程

这门课程基于主流的java8平台,由浅入深的详细讲解了java SE的开发技术,可以使java方向的入门学员,快速扎实的掌握java开发技术!

HoloLens2开发入门教程

本课程为HoloLens2开发入门教程,讲解部署开发环境,安装VS2019,Unity版本,Windows SDK,创建Unity项目,讲解如何使用MRTK,编辑器模拟手势交互,打包VS工程并编译部署应用到HoloLens上等。

C/C++学习指南全套教程

C/C++学习的全套教程,从基本语法,基本原理,到界面开发、网络开发、Linux开发、安全算法,应用尽用。由毕业于清华大学的业内人士执课,为C/C++编程爱好者的教程。

pokemmo的资源

pokemmo必须的4个rom 分别为绿宝石 火红 心金 黑白 还有汉化补丁 资源不错哦 记得下载

test_head.py

本文件主要是针对使用dlib的imglab标注工具标记的目标检测框和关键点检测而生成的xml文件, 转换为coco数据集格式.

Java面试史上最全的JAVA专业术语面试100问 (前1-50)

前言: 说在前面, 面试题是根据一些朋友去面试提供的,再就是从网上整理了一些。 先更新50道,下一波吧后面的也更出来。 求赞求关注!! 废话也不多说,现在就来看看有哪些面试题 1、面向对象的特点有哪些? 抽象、继承、封装、多态。 2、接口和抽象类有什么联系和区别? 3、重载和重写有什么区别? 4、java有哪些基本数据类型? 5、数组有没有length()方法?String有没有length()方法? 数组没有length()方法,它有length属性。 String有length()方法。 集合求长度用

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

linux“开发工具三剑客”速成攻略

工欲善其事,必先利其器。Vim+Git+Makefile是Linux环境下嵌入式开发常用的工具。本专题主要面向初次接触Linux的新手,熟练掌握工作中常用的工具,在以后的学习和工作中提高效率。

DirectX修复工具V4.0增强版

DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复

20行代码教你用python给证件照换底色

20行代码教你用python给证件照换底色

2019 Python开发者日-培训

本次活动将秉承“只讲技术,拒绝空谈”的理念,邀请十余位身处一线的Python技术专家,重点围绕Web开发、自动化运维、数据分析、人工智能等技术模块,分享真实生产环境中使用Python应对IT挑战的真知灼见。此外,针对不同层次的开发者,大会还安排了深度培训实操环节,为开发者们带来更多深度实战的机会。

我以为我对Mysql事务很熟,直到我遇到了阿里面试官

太惨了,面试又被吊打

相关热词 c#对文件改写权限 c#中tostring c#支付宝回掉 c#转换成数字 c#判断除法是否有模 c# 横向chart c#控件选择多个 c#报表如何锁定表头 c#分级显示数据 c# 不区分大小写替换
立即提问
相关内容推荐