精易论坛

标题: 呵呵仙_对象复制、对象释放、对象交换 [打印本页]

作者: 呵呵仙    时间: 2022-11-24 19:03
标题: 呵呵仙_对象复制、对象释放、对象交换
大家在用线程或线程池时,是不是都先申请内存。把数据合并为一个文本写到内存,传址入线程?然后得返文本后再分割?如百分百能取回文本固然是好!!事实是有机率取回乱码的!!很神奇!!今天,有位易友又是遇到我N年的问题。其实用类变量就可以起到打包数据到内存的,不用又申请,又合并,又分割的。工作太忙!好久,没练写代码了。分享下这个子程序吧。那天,忘到不会写代码了!!可以在精易这里找回知识点。
子程序作用如下:1,把数据打包写入到类中私有成员中去。2,复制这个类到内存得到指针。3,传入线程。4,在线程内把内存的类变回局部变量操作。释放内存中的类就OK了!
很有火山源码的味道。不同之处就是火山的私有成员可以勾选公开!!^_^
对象复制、对象释放、对象交换.e (6.63 KB, 下载次数: 332)



作者: Conquer    时间: 2022-11-24 19:27

作者: quary888    时间: 2022-11-24 19:35
又多一项技能  谢谢大佬开源
作者: xh1020    时间: 2022-11-24 19:43
大佬又出山啦~~~
作者: wuqingg    时间: 2022-11-24 19:49
你们都好厉害,我除了会说支持开源,感谢分享还能干说明~~~
作者: Siempre    时间: 2022-11-24 19:57
深拷贝?
作者: Elite    时间: 2022-11-24 20:03
给我个对象
作者: maozaiba    时间: 2022-11-24 20:03
不知道稳定和兼容性如何
作者: 呵呵仙    时间: 2022-11-24 20:11
maozaiba 发表于 2022-11-24 20:03
不知道稳定和兼容性如何

正常来说数据只要不超32位程序内存界限是没问题的。
作者: bianyuan456    时间: 2022-11-24 20:11
感谢分享
作者: kentfung    时间: 2022-11-24 20:13
乱码情况最近也遇到过,没办法解决,试试这个方法
作者: 285275928    时间: 2022-11-24 20:15
感谢分享
作者: wtflxk    时间: 2022-11-24 20:26
我除了会说支持开源,感谢分享还能干说明~~~
作者: q1512960733    时间: 2022-11-24 20:39
百分百不乱码嘛,软件一碰到乱码就崩溃,只能百分之百才能用
作者: mooo    时间: 2022-11-24 21:13
谢谢分享
作者: Fate    时间: 2022-11-24 21:38
感谢分享
作者: shuaier    时间: 2022-11-24 22:06
感谢分享!!!
作者: 396384183    时间: 2022-11-25 01:08
支持一下
作者: 285275928    时间: 2022-11-25 04:05
支持一下
作者: By平凡    时间: 2022-11-25 05:18
有个地方不太理解。第一个对象被释放两次,不知道会不会潜在什么问题?还是说对象是被深层复制的,销毁两次是正确的?






作者: 名无所谓    时间: 2022-11-25 05:55
感谢分享
作者: 孤城已故    时间: 2022-11-25 07:03
谢谢楼主,学习下!
作者: 蓝河笑月    时间: 2022-11-25 07:40
感谢分享!  支持开源!
作者: 呵呵仙    时间: 2022-11-25 07:50
By平凡 发表于 2022-11-25 05:18
有个地方不太理解。第一个对象被释放两次,不知道会不会潜在什么问题?还是说对象是被深层复制的,销毁两次 ...

三次不是正常?线程外一个局部变量,被复制到内存一个变量(等同于全局变量)。线程内一个局部变量。
作者: 杰西卡技术传媒    时间: 2022-11-25 09:19
支持开源~!感谢分享
作者: By平凡    时间: 2022-11-25 09:27
呵呵仙 发表于 2022-11-25 07:50
三次不是正常?线程外一个局部变量,被复制到内存一个变量(等同于全局变量)。线程内一个局部变量。 ...

简单明了
作者: 深圳梦    时间: 2022-11-25 09:41
支持开源~!感谢分享
作者: kyo9766    时间: 2022-11-25 10:18
代码写的,跟头像一样,6到起飞了,感谢分享
作者: sostemp    时间: 2022-11-25 12:53
代码写的,跟头像一样,6到起飞了,感谢分享
作者: 和平软件    时间: 2022-11-26 09:53
666666666666
作者: yuxuanju    时间: 2022-11-26 11:03
大神啊,感谢分享。
作者: daduke7902    时间: 2022-11-26 11:45
感谢分享例子,不知道是我改 的不对,还是 例子本身有问题!

请指教,   改成了 多线程。




对象复制、对象释放、对象交换.e (7.82 KB, 下载次数: 6)


作者: 呵呵仙    时间: 2022-11-26 12:20
daduke7902 发表于 2022-11-26 11:45
感谢分享例子,不知道是我改 的不对,还是 例子本身有问题!

请指教,   改成了 多线程。

你为何要线程创建成功与否,都要释放内存这个类呢?不是应该没线程的情况下,在线程外释放?有线程了在线程内释放吗?
作者: 呵呵仙    时间: 2022-11-26 12:28
本帖最后由 呵呵仙 于 2022-11-26 12:29 编辑


作者: daduke7902    时间: 2022-11-26 13:36
呵呵仙 发表于 2022-11-26 12:28

果然 是我写错了,我直接 复制过去的,现在测试起来,很完美
作者: yxl2008    时间: 2022-11-26 14:34
支持开源~!感谢分享
作者: 97134784    时间: 2022-11-27 21:44
支持 感谢分享
作者: hsvs4    时间: 2022-11-29 13:13
本帖最后由 hsvs4 于 2022-11-29 13:19 编辑

还好我看了评论 不然就下载不到修改版
作者: dljy    时间: 2022-11-29 15:17
感谢分享,很给力!~
作者: cfxy    时间: 2022-12-7 14:03
感谢分享,很给力!~
作者: 梦之情    时间: 2022-12-20 13:16
你说的这个对象。她正经嘛。。
作者: ai185704529    时间: 2023-1-18 18:19
想问一下多线程里,变量如果都是局部的话,用这个方法取数据需要加许可证吗?
作者: 呵呵仙    时间: 2023-1-30 18:51
ai185704529 发表于 2023-1-18 18:19
想问一下多线程里,变量如果都是局部的话,用这个方法取数据需要加许可证吗? ...

不用,每个复制到内存的类变量,都是独一无二的.等同于动态创建程序集类,如果只是把这个内存类指针只告诉给一个线程知,是无需加许可证的.记得不用时,释放就OK了!
作者: D名俾人改晒    时间: 2023-7-20 14:54
66666666666666666666666666
作者: myfaint009    时间: 2023-8-4 09:32
谢谢大佬开源
作者: 股老传奇    时间: 2023-9-3 11:04
感觉很有用的
作者: 1043603367    时间: 2023-10-26 09:38
常用支持库:无限参数传递,无限参数传递还原,不香?
作者: 呵呵仙    时间: 2023-10-26 12:14
1043603367 发表于 2023-10-26 09:38
常用支持库:无限参数传递,无限参数传递还原,不香?

那有传递复杂的结构体到线程池中作参数的?全是申请内存打包数据,传指针,好吧!!
作者: liaoxiaohu    时间: 2023-10-26 12:25
666666666666666666666666666
作者: 1043603367    时间: 2023-10-27 14:10
本帖最后由 1043603367 于 2023-10-27 14:11 编辑
呵呵仙 发表于 2023-10-26 12:14
那有传递复杂的结构体到线程池中作参数的?全是申请内存打包数据,传指针,好吧!! ...

这个命令也是返回一个指针地址哦,再通过地址还原变量哦,符合普通的线程都能带一个参数,很实用。不需要单独申请内存和释放内存,并且支持不同类型的变量。应该是字节集分割的原理吧。
作者: 呵呵仙    时间: 2023-10-27 21:48
1043603367 发表于 2023-10-27 14:10
这个命令也是返回一个指针地址哦,再通过地址还原变量哦,符合普通的线程都能带一个参数,很实用。不需要 ...

是什么命令?如果自定义数据也能自动传化,那就真的很实用哦!
作者: 1043603367    时间: 2023-10-28 08:55
呵呵仙 发表于 2023-10-27 21:48
是什么命令?如果自定义数据也能自动传化,那就真的很实用哦!

常用功能支持库


  
子程序名返回值类型公开备 注
_按钮1_被单击  
变量名类 型静态数组备 注
局_abaabb 
局_指针整数型 
局_ab.A = 1
局_ab.b = { 1, 1 }
局_指针 = 常用_无限传参 (局_ab.A, 局_ab.b)  ' 这个是易数据类型
局_指针 = 常用_自定义到指针 (局_ab, 取字节集长度 (局_ab.b))  ' 这个用于自定义类型
启动线程 (&子程序1, 局_指针, )
子程序名返回值类型公开备 注
子程序1  
参数名类 型参考可空数组备 注
参_指针整数型
变量名类 型静态数组备 注
局_abaabb 
常用_无限传参还原 (参_指针, 局_ab.A, 局_ab.b)  ' 这个是易数据类型
常用_指针到自定义 (参_指针, 局_ab)  ' 这个用于自定义类型
调试输出 (局_ab.A, 局_ab.b)


i支持库列表   支持库注释   
CommonSupport(未知支持库)
EThread多线程支持库
spec特殊功能支持库


作者: 6251814    时间: 2023-11-2 12:14
真的有交换对象的吗?
作者: lm88818    时间: 2023-12-12 15:37
  支持开源~!感谢分享
作者: xiaole283    时间: 2023-12-16 16:53
ASM_对象复制 和 ASM_对象释放是call的复制函数和析构函数吗?
作者: xiaole283    时间: 2023-12-16 17:22
daduke7902 发表于 2022-11-26 11:45
感谢分享例子,不知道是我改 的不对,还是 例子本身有问题!

请指教,   改成了 多线程。

释放应该有线程子程序去释放,你这刚启动线程就把指针给释放了。线程里面这个指针失效了,难道不崩溃么
作者: xiaole283    时间: 2023-12-16 17:23
xiaole283 发表于 2023-12-16 16:53
ASM_对象复制 和 ASM_对象释放是call的复制函数和析构函数吗?

明白了。就是执行的复制函数
作者: daduke7902    时间: 2023-12-16 18:49
xiaole283 发表于 2023-12-16 17:22
释放应该有线程子程序去释放,你这刚启动线程就把指针给释放了。线程里面这个指针失效了,难道不崩溃么 ...

是的,你漏掉帖子了,我早改好 了,也 发了
作者: kisl7979    时间: 2023-12-29 21:52
确实有几率
作者: kisl7979    时间: 2023-12-29 22:04
xiaole283 发表于 2023-12-16 17:22
释放应该有线程子程序去释放,你这刚启动线程就把指针给释放了。线程里面这个指针失效了,难道不崩溃么 ...

开头释放是 创建失败释放的所以没问题
作者: 笨来无一悟    时间: 2024-4-23 23:44
骚操作
作者: mnin    时间: 2024-5-6 20:20
支持开源~!感谢分享
作者: xiaole283    时间: 2024-6-2 10:40
对不是自己写的类谨慎使用。如果类参数是方法中申请内存的指针,在类被销毁的时候内存指针被销毁。那么,复制出来的类参数为野指针,崩溃随时到来。除非是自己写的类,没有拷贝函数搞不定的东西,才能安心用。
作者: 小小柒    时间: 2024-8-2 14:34
可以学习学习 思路    ,,,,,,,,,,,,,
作者: oopsjeff    时间: 2024-11-30 18:47
好东西. 谢谢了.
作者: 1091903426    时间: 2025-1-19 20:39
学习学习
作者: jylt531971998    时间: 2025-1-20 22:09
好东西. 谢谢了.
作者: 曼菲士    时间: 2025-3-26 23:17
加入文本数组,测试没问题,通用。
作者: rensheng    时间: 2025-6-16 09:03
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者: 1184798949    时间: 2025-6-16 09:21
感谢分享
作者: 纸醉金迷e    时间: 昨天 06:58
开源精神必须支持~




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4